home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / CIncludes / Movies.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  138.2 KB  |  4,080 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Movies.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __MOVIES__
  18. #define __MOVIES__
  19.  
  20. #ifndef __QUICKDRAW__
  21. #include <Quickdraw.h>
  22. #endif
  23. #ifndef __ALIASES__
  24. #include <Aliases.h>
  25. #endif
  26. #ifndef __EVENTS__
  27. #include <Events.h>
  28. #endif
  29. #ifndef __MENUS__
  30. #include <Menus.h>
  31. #endif
  32. #ifndef __COMPONENTS__
  33. #include <Components.h>
  34. #endif
  35. #ifndef __IMAGECOMPRESSION__
  36. #include <ImageCompression.h>
  37. #endif
  38.  
  39.  
  40.  
  41. #if PRAGMA_ONCE
  42. #pragma once
  43. #endif
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48.  
  49. #if PRAGMA_IMPORT
  50. #pragma import on
  51. #endif
  52.  
  53. #if PRAGMA_STRUCT_ALIGN
  54.     #pragma options align=mac68k
  55. #elif PRAGMA_STRUCT_PACKPUSH
  56.     #pragma pack(push, 2)
  57. #elif PRAGMA_STRUCT_PACK
  58.     #pragma pack(2)
  59. #endif
  60.  
  61.  
  62. /*  "kFix1" is defined in FixMath as "fixed1"  */
  63. /* error codes are in Errors.[haa] */
  64. /* gestalt codes are in Gestalt.[hpa] */
  65.  
  66. enum {
  67.     MovieFileType                = FOUR_CHAR_CODE('MooV'),
  68.     MovieScrapType                = FOUR_CHAR_CODE('moov')
  69. };
  70.  
  71.  
  72. enum {
  73.     MovieResourceType            = FOUR_CHAR_CODE('moov'),
  74.     MovieForwardPointerResourceType = FOUR_CHAR_CODE('fore'),
  75.     MovieBackwardPointerResourceType = FOUR_CHAR_CODE('back')
  76. };
  77.  
  78.  
  79. enum {
  80.     MovieResourceAtomType        = FOUR_CHAR_CODE('moov'),
  81.     MovieDataAtomType            = FOUR_CHAR_CODE('mdat'),
  82.     FreeAtomType                = FOUR_CHAR_CODE('free'),
  83.     SkipAtomType                = FOUR_CHAR_CODE('skip')
  84. };
  85.  
  86.  
  87. enum {
  88.     MediaHandlerType            = FOUR_CHAR_CODE('mhlr'),
  89.     DataHandlerType                = FOUR_CHAR_CODE('dhlr')
  90. };
  91.  
  92.  
  93. enum {
  94.     VideoMediaType                = FOUR_CHAR_CODE('vide'),
  95.     SoundMediaType                = FOUR_CHAR_CODE('soun'),
  96.     TextMediaType                = FOUR_CHAR_CODE('text'),
  97.     BaseMediaType                = FOUR_CHAR_CODE('gnrc'),
  98.     MPEGMediaType                = FOUR_CHAR_CODE('MPEG'),
  99.     MusicMediaType                = FOUR_CHAR_CODE('musi'),
  100.     TimeCodeMediaType            = FOUR_CHAR_CODE('tmcd'),
  101.     SpriteMediaType                = FOUR_CHAR_CODE('sprt'),
  102.     TweenMediaType                = FOUR_CHAR_CODE('twen'),
  103.     ThreeDeeMediaType            = FOUR_CHAR_CODE('qd3d'),
  104.     HandleDataHandlerSubType    = FOUR_CHAR_CODE('hndl'),
  105.     ResourceDataHandlerSubType    = FOUR_CHAR_CODE('rsrc'),
  106.     URLDataHandlerSubType        = FOUR_CHAR_CODE('url ')
  107. };
  108.  
  109.  
  110. enum {
  111.     VisualMediaCharacteristic    = FOUR_CHAR_CODE('eyes'),
  112.     AudioMediaCharacteristic    = FOUR_CHAR_CODE('ears'),
  113.     kCharacteristicCanSendVideo    = FOUR_CHAR_CODE('vsnd'),
  114.     kCharacteristicProvidesActions = FOUR_CHAR_CODE('actn'),
  115.     kCharacteristicNonLinear    = FOUR_CHAR_CODE('nonl')
  116. };
  117.  
  118.  
  119. enum {
  120.     kUserDataMovieControllerType = FOUR_CHAR_CODE('ctyp'),
  121.     kUserDataName                = FOUR_CHAR_CODE('name'),
  122.     kUserDataTextFullName        = FOUR_CHAR_CODE('©nam'),
  123.     kUserDataTextCopyright        = FOUR_CHAR_CODE('©cpy'),
  124.     kUserDataTextInformation    = FOUR_CHAR_CODE('©inf')
  125. };
  126.  
  127.  
  128. enum {
  129.     DoTheRightThing                = 0
  130. };
  131.  
  132.  
  133.  
  134. struct MovieRecord {
  135.     long                             data[1];
  136. };
  137. typedef struct MovieRecord                MovieRecord;
  138.  
  139. typedef MovieRecord *                    Movie;
  140.  
  141. struct TrackRecord {
  142.     long                             data[1];
  143. };
  144. typedef struct TrackRecord                TrackRecord;
  145.  
  146. typedef TrackRecord *                    Track;
  147.  
  148. struct MediaRecord {
  149.     long                             data[1];
  150. };
  151. typedef struct MediaRecord                MediaRecord;
  152.  
  153. typedef MediaRecord *                    Media;
  154.  
  155. struct UserDataRecord {
  156.     long                             data[1];
  157. };
  158. typedef struct UserDataRecord            UserDataRecord;
  159.  
  160. typedef UserDataRecord *                UserData;
  161.  
  162. struct TrackEditStateRecord {
  163.     long                             data[1];
  164. };
  165. typedef struct TrackEditStateRecord        TrackEditStateRecord;
  166.  
  167. typedef TrackEditStateRecord *            TrackEditState;
  168.  
  169. struct MovieEditStateRecord {
  170.     long                             data[1];
  171. };
  172. typedef struct MovieEditStateRecord        MovieEditStateRecord;
  173.  
  174. typedef MovieEditStateRecord *            MovieEditState;
  175.  
  176. struct SpriteWorldRecord {
  177.     long                             data[1];
  178. };
  179. typedef struct SpriteWorldRecord        SpriteWorldRecord;
  180.  
  181. typedef SpriteWorldRecord *                SpriteWorld;
  182.  
  183. struct SpriteRecord {
  184.     long                             data[1];
  185. };
  186. typedef struct SpriteRecord                SpriteRecord;
  187.  
  188. typedef SpriteRecord *                    Sprite;
  189.  
  190. struct QTTweenerRecord {
  191.     long                             data[1];
  192. };
  193. typedef struct QTTweenerRecord            QTTweenerRecord;
  194.  
  195. typedef QTTweenerRecord *                QTTweener;
  196.  
  197. struct SampleDescription {
  198.     long                             descSize;
  199.     long                             dataFormat;
  200.     long                             resvd1;
  201.     short                             resvd2;
  202.     short                             dataRefIndex;
  203. };
  204. typedef struct SampleDescription        SampleDescription;
  205. typedef SampleDescription *                SampleDescriptionPtr;
  206. typedef SampleDescriptionPtr *            SampleDescriptionHandle;
  207.  
  208. typedef Handle                             QTAtomContainer;
  209. typedef long                             QTAtom;
  210. typedef long                             QTAtomType;
  211. typedef long                             QTAtomID;
  212. /* QTFloatDouble is the 64-bit IEEE-754 standard*/
  213. typedef Float64                         QTFloatDouble;
  214. /* QTFloatSingle is the 32-bit IEEE-754 standard*/
  215. typedef Float32                         QTFloatSingle;
  216.  
  217.  
  218.  
  219. struct SoundDescription {
  220.     long                             descSize;                    /* total size of SoundDescription including extra data */
  221.     long                             dataFormat;                    /* sound format */
  222.     long                             resvd1;                        /* reserved for apple use. set to zero */
  223.     short                             resvd2;                        /* reserved for apple use. set to zero */
  224.     short                             dataRefIndex;
  225.     short                             version;                    /* which version is this data */
  226.     short                             revlevel;                    /* what version of that codec did this */
  227.     long                             vendor;                        /* whose  codec compressed this data */
  228.     short                             numChannels;                /* number of channels of sound */
  229.     short                             sampleSize;                    /* number of bits per sample */
  230.     short                             compressionID;                /* unused. set to zero. */
  231.     short                             packetSize;                    /* unused. set to zero. */
  232.     UnsignedFixed                     sampleRate;                    /* sample rate sound is captured at */
  233. };
  234. typedef struct SoundDescription            SoundDescription;
  235. typedef SoundDescription *                SoundDescriptionPtr;
  236. typedef SoundDescriptionPtr *            SoundDescriptionHandle;
  237. /* version 1 of the SoundDescription record*/
  238.  
  239. struct SoundDescriptionV1 {
  240.                                                                 /* original fields*/
  241.     SoundDescription                 desc;
  242.                                                                 /* fixed compression ratio information*/
  243.     unsigned long                     samplesPerPacket;
  244.     unsigned long                     bytesPerPacket;
  245.     unsigned long                     bytesPerFrame;
  246.     unsigned long                     bytesPerSample;
  247.                                                                 /* additional atom based fields ([long size, long type, some data], repeat)*/
  248. };
  249. typedef struct SoundDescriptionV1        SoundDescriptionV1;
  250. typedef SoundDescriptionV1 *            SoundDescriptionV1Ptr;
  251. typedef SoundDescriptionV1Ptr *            SoundDescriptionV1Handle;
  252.  
  253. struct TextDescription {
  254.     long                             descSize;                    /* Total size of TextDescription*/
  255.     long                             dataFormat;                    /* 'text'*/
  256.  
  257.     long                             resvd1;
  258.     short                             resvd2;
  259.     short                             dataRefIndex;
  260.  
  261.     long                             displayFlags;                /* see enum below for flag values*/
  262.  
  263.     long                             textJustification;            /* Can be: teCenter,teFlush -Default,-Right,-Left*/
  264.  
  265.     RGBColor                         bgColor;                    /* Background color*/
  266.  
  267.     Rect                             defaultTextBox;                /* Location to place the text within the track bounds*/
  268.     ScrpSTElement                     defaultStyle;                /* Default style (struct defined in TextEdit.h)*/
  269.     char                             defaultFontName[1];            /* Font Name (pascal string - struct extended to fit) */
  270. };
  271. typedef struct TextDescription            TextDescription;
  272. typedef TextDescription *                TextDescriptionPtr;
  273. typedef TextDescriptionPtr *            TextDescriptionHandle;
  274.  
  275. struct SpriteDescription {
  276.     long                             descSize;                    /* total size of SpriteDescription including extra data */
  277.     long                             dataFormat;                    /*  */
  278.     long                             resvd1;                        /* reserved for apple use */
  279.     short                             resvd2;
  280.     short                             dataRefIndex;
  281.     long                             version;                    /* which version is this data */
  282.     OSType                             decompressorType;            /* which decompressor to use, 0 for no decompression */
  283.     long                             sampleFlags;                /* how to interpret samples */
  284. };
  285. typedef struct SpriteDescription        SpriteDescription;
  286. typedef SpriteDescription *                SpriteDescriptionPtr;
  287. typedef SpriteDescriptionPtr *            SpriteDescriptionHandle;
  288.  
  289. struct ThreeDeeDescription {
  290.     long                             descSize;                    /* total size of ThreeDeeDescription including extra data */
  291.     long                             dataFormat;                    /*  */
  292.     long                             resvd1;                        /* reserved for apple use */
  293.     short                             resvd2;
  294.     short                             dataRefIndex;
  295.     long                             version;                    /* which version is this data */
  296.     long                             rendererType;                /* which renderer to use, 0 for default */
  297.     long                             decompressorType;            /* which decompressor to use, 0 for default */
  298. };
  299. typedef struct ThreeDeeDescription        ThreeDeeDescription;
  300. typedef ThreeDeeDescription *            ThreeDeeDescriptionPtr;
  301. typedef ThreeDeeDescriptionPtr *        ThreeDeeDescriptionHandle;
  302.  
  303. struct DataReferenceRecord {
  304.     OSType                             dataRefType;
  305.     Handle                             dataRef;
  306. };
  307. typedef struct DataReferenceRecord        DataReferenceRecord;
  308.  
  309. typedef DataReferenceRecord *            DataReferencePtr;
  310. /*--------------------------
  311.   Music Sample Description
  312. --------------------------*/
  313.  
  314. struct MusicDescription {
  315.     long                             descSize;
  316.     long                             dataFormat;                    /* 'musi' */
  317.  
  318.     long                             resvd1;
  319.     short                             resvd2;
  320.     short                             dataRefIndex;
  321.  
  322.     long                             musicFlags;
  323.     unsigned long                     headerData[1];                /* variable size! */
  324.  
  325. };
  326. typedef struct MusicDescription            MusicDescription;
  327. typedef MusicDescription *                MusicDescriptionPtr;
  328. typedef MusicDescriptionPtr *            MusicDescriptionHandle;
  329.  
  330. enum {
  331.     kMusicFlagDontPlay2Soft        = 1L << 0,
  332.     kMusicFlagDontSlaveToMovie    = 1L << 1
  333. };
  334.  
  335.  
  336.  
  337. enum {
  338.     dfDontDisplay                = 1 << 0,                        /* Don't display the text*/
  339.     dfDontAutoScale                = 1 << 1,                        /* Don't scale text as track bounds grows or shrinks*/
  340.     dfClipToTextBox                = 1 << 2,                        /* Clip update to the textbox*/
  341.     dfUseMovieBGColor            = 1 << 3,                        /* Set text background to movie's background color*/
  342.     dfShrinkTextBoxToFit        = 1 << 4,                        /* Compute minimum box to fit the sample*/
  343.     dfScrollIn                    = 1 << 5,                        /* Scroll text in until last of text is in view */
  344.     dfScrollOut                    = 1 << 6,                        /* Scroll text out until last of text is gone (if both set, scroll in then out)*/
  345.     dfHorizScroll                = 1 << 7,                        /* Scroll text horizontally (otherwise it's vertical)*/
  346.     dfReverseScroll                = 1 << 8,                        /* vert: scroll down rather than up; horiz: scroll backwards (justfication dependent)*/
  347.     dfContinuousScroll            = 1 << 9,                        /* new samples cause previous samples to scroll out */
  348.     dfFlowHoriz                    = 1 << 10,                        /* horiz scroll text flows in textbox rather than extend to right */
  349.     dfContinuousKaraoke            = 1 << 11,                        /* ignore begin offset, hilite everything up to the end offset(karaoke)*/
  350.     dfDropShadow                = 1 << 12,                        /* display text with a drop shadow */
  351.     dfAntiAlias                    = 1 << 13,                        /* attempt to display text anti aliased*/
  352.     dfKeyedText                    = 1 << 14,                        /* key the text over background*/
  353.     dfInverseHilite                = 1 << 15,                        /* Use inverse hiliting rather than using hilite color*/
  354.     dfTextColorHilite            = 1 << 16                        /* changes text color in place of hiliting. */
  355. };
  356.  
  357.  
  358. enum {
  359.     searchTextDontGoToFoundTime    = 1L << 16,
  360.     searchTextDontHiliteFoundText = 1L << 17,
  361.     searchTextOneTrackOnly        = 1L << 18,
  362.     searchTextEnabledTracksOnly    = 1L << 19
  363. };
  364.  
  365.  
  366. enum {
  367.     k3DMediaRendererEntry        = FOUR_CHAR_CODE('rend'),
  368.     k3DMediaRendererName        = FOUR_CHAR_CODE('name'),
  369.     k3DMediaRendererCode        = FOUR_CHAR_CODE('rcod')
  370. };
  371.  
  372. /* progress messages */
  373.  
  374. enum {
  375.     movieProgressOpen            = 0,
  376.     movieProgressUpdatePercent    = 1,
  377.     movieProgressClose            = 2
  378. };
  379.  
  380. /* progress operations */
  381.  
  382. enum {
  383.     progressOpFlatten            = 1,
  384.     progressOpInsertTrackSegment = 2,
  385.     progressOpInsertMovieSegment = 3,
  386.     progressOpPaste                = 4,
  387.     progressOpAddMovieSelection    = 5,
  388.     progressOpCopy                = 6,
  389.     progressOpCut                = 7,
  390.     progressOpLoadMovieIntoRam    = 8,
  391.     progressOpLoadTrackIntoRam    = 9,
  392.     progressOpLoadMediaIntoRam    = 10,
  393.     progressOpImportMovie        = 11,
  394.     progressOpExportMovie        = 12
  395. };
  396.  
  397.  
  398. enum {
  399.     mediaQualityDraft            = 0x0000,
  400.     mediaQualityNormal            = 0x0040,
  401.     mediaQualityBetter            = 0x0080,
  402.     mediaQualityBest            = 0x00C0
  403. };
  404.  
  405. /*****
  406.     Interactive Sprites Support
  407. *****/
  408.  
  409. struct QTEventRecord {
  410.     long                             version;
  411.     OSType                             eventType;
  412.     Point                             where;
  413.     long                             flags;
  414. };
  415. typedef struct QTEventRecord            QTEventRecord;
  416. typedef QTEventRecord *                    QTEventRecordPtr;
  417.  
  418. struct QTAtomSpec {
  419.     QTAtomContainer                 container;
  420.     QTAtom                             atom;
  421. };
  422. typedef struct QTAtomSpec                QTAtomSpec;
  423. typedef QTAtomSpec *                    QTAtomSpecPtr;
  424.  
  425. struct ResolvedQTEventSpec {
  426.     QTAtomSpec                         actionAtom;
  427.     Track                             targetTrack;
  428.     long                             targetRefCon;
  429. };
  430. typedef struct ResolvedQTEventSpec        ResolvedQTEventSpec;
  431. typedef ResolvedQTEventSpec *            ResolvedQTEventSpecPtr;
  432.  
  433. /* action constants */
  434.  
  435. enum {
  436.     kActionMovieSetVolume        = 1024,                            /* (short movieVolume) */
  437.     kActionMovieSetRate            = 1025,                            /* (Fixed rate) */
  438.     kActionMovieSetLoopingFlags    = 1026,                            /* (long loopingFlags) */
  439.     kActionMovieGoToTime        = 1027,                            /* (TimeValue time) */
  440.     kActionMovieGoToTimeByName    = 1028,                            /* (Str255 timeName) */
  441.     kActionMovieGoToBeginning    = 1029,                            /* no params */
  442.     kActionMovieGoToEnd            = 1030,                            /* no params */
  443.     kActionMovieStepForward        = 1031,                            /* no params */
  444.     kActionMovieStepBackward    = 1032,                            /* no params */
  445.     kActionMovieSetSelection    = 1033,                            /* (TimeValue startTime, TimeValue endTime) */
  446.     kActionMovieSetSelectionByName = 1034,                        /* (Str255 startTimeName, Str255 endTimeName) */
  447.     kActionMoviePlaySelection    = 1035,                            /* (Boolean selectionOnly) */
  448.     kActionMovieSetLanguage        = 1036,                            /* (long language) */
  449.     kActionMovieChanged            = 1037,                            /* no params */
  450.     kActionTrackSetVolume        = 2048,                            /* (short volume) */
  451.     kActionTrackSetBalance        = 2049,                            /* (short balance) */
  452.     kActionTrackSetEnabled        = 2050,                            /* (Boolean enabled) */
  453.     kActionTrackSetMatrix        = 2051,                            /* (MatrixRecord matrix) */
  454.     kActionTrackSetLayer        = 2052,                            /* (short layer) */
  455.     kActionTrackSetClip            = 2053,                            /* (RgnHandle clip) */
  456.     kActionSpriteSetMatrix        = 3072,                            /* (MatrixRecord matrix) */
  457.     kActionSpriteSetImageIndex    = 3073,                            /* (short imageIndex) */
  458.     kActionSpriteSetVisible        = 3074,                            /* (short visible) */
  459.     kActionSpriteSetLayer        = 3075,                            /* (short layer) */
  460.     kActionSpriteSetGraphicsMode = 3076,                        /* (ModifierTrackGraphicsModeRecord graphicsMode) */
  461.     kActionSpritePassMouseToCodec = 3078,                        /* no params */
  462.     kActionSpriteClickOnCodec    = 3079,                            /* Point localLoc */
  463.     kActionSpriteTranslate        = 3080,                            /* (Fixed x, Fixed y, Boolean isAbsolute) */
  464.     kActionSpriteScale            = 3081,                            /* (Fixed xScale, Fixed yScale) */
  465.     kActionSpriteRotate            = 3082,                            /* (Fixed degrees) */
  466.     kActionSpriteStretch        = 3083,                            /* (Fixed p1x, Fixed p1y, Fixed p2x, Fixed p2y, Fixed p3x, Fixed p3y, Fixed p4x, Fixed p4y) */
  467.     kActionQTVRSetPanAngle        = 4096,                            /* (float panAngle) */
  468.     kActionQTVRSetTiltAngle        = 4097,                            /* (float tiltAngle) */
  469.     kActionQTVRSetFieldOfView    = 4098,                            /* (float fieldOfView) */
  470.     kActionQTVRShowDefaultView    = 4099,                            /* no params */
  471.     kActionQTVRGoToNodeID        = 4100,                            /* (UInt32 nodeID) */
  472.     kActionMusicPlayNote        = 5120,                            /* (long sampleDescIndex, long partNumber, long delay, long pitch, long velocity, long duration) */
  473.     kActionMusicSetController    = 5121,                            /* (long sampleDescIndex, long partNumber, long delay, long controller, long value) */
  474.     kActionCase                    = 6144,                            /* [(CaseStatementActionAtoms)] */
  475.     kActionWhile                = 6145,                            /* [(WhileStatementActionAtoms)] */
  476.     kActionGoToURL                = 6146,                            /* (C string urlLink) */
  477.     kActionSendQTEventToSprite    = 6147,                            /* ([(SpriteTargetAtoms)], QTEventRecord theEvent) */
  478.     kActionDebugStr                = 6148,                            /* (Str255 theString) */
  479.     kActionPushCurrentTime        = 6149,                            /* no params */
  480.     kActionPushCurrentTimeWithLabel = 6150,                        /* (Str255 theLabel) */
  481.     kActionPopAndGotoTopTime    = 6151,                            /* no params */
  482.     kActionPopAndGotoLabeledTime = 6152,                        /* (Str255 theLabel) */
  483.     kActionSpriteTrackSetVariable = 7168,                        /* (QTAtomID variableID, float value) */
  484.     kActionApplicationNumberAndString = 8192                    /* (long aNumber, Str255 aString ) */
  485. };
  486.  
  487.  
  488. enum {
  489.     kOperandExpression            = 1,
  490.     kOperandConstant            = 2,
  491.     kOperandMovieVolume            = 1024,
  492.     kOperandMovieRate            = 1025,
  493.     kOperandMovieIsLooping        = 1026,
  494.     kOperandMovieLoopIsPalindrome = 1027,
  495.     kOperandMovieTime            = 1028,
  496.     kOperandTrackVolume            = 2048,
  497.     kOperandTrackBalance        = 2049,
  498.     kOperandTrackEnabled        = 2050,
  499.     kOperandTrackLayer            = 2051,
  500.     kOperandTrackWidth            = 2052,
  501.     kOperandTrackHeight            = 2053,
  502.     kOperandSpriteBoundsLeft    = 3072,
  503.     kOperandSpriteBoundsTop        = 3073,
  504.     kOperandSpriteBoundsRight    = 3074,
  505.     kOperandSpriteBoundsBottom    = 3075,
  506.     kOperandSpriteImageIndex    = 3076,
  507.     kOperandSpriteVisible        = 3077,
  508.     kOperandSpriteLayer            = 3078,
  509.     kOperandSpriteTrackVariable    = 3079,                            /* [QTAtomID variableID] */
  510.     kOperandSpriteTrackNumSprites = 3080,
  511.     kOperandSpriteTrackNumImages = 3081,
  512.     kOperandSpriteID            = 3082,
  513.     kOperandSpriteIndex            = 3083,
  514.     kOperandSpriteFirstCornerX    = 3084,
  515.     kOperandSpriteFirstCornerY    = 3085,
  516.     kOperandSpriteSecondCornerX    = 3086,
  517.     kOperandSpriteSecondCornerY    = 3087,
  518.     kOperandSpriteThirdCornerX    = 3088,
  519.     kOperandSpriteThirdCornerY    = 3089,
  520.     kOperandSpriteFourthCornerX    = 3090,
  521.     kOperandSpriteFourthCornerY    = 3091,
  522.     kOperandSpriteImageRegistrationPointX = 3092,
  523.     kOperandSpriteImageRegistrationPointY = 3093,
  524.     kOperandQTVRPanAngle        = 4096,
  525.     kOperandQTVRTiltAngle        = 4097,
  526.     kOperandQTVRFieldOfView        = 4098,
  527.     kOperandQTVRNodeID            = 4099,
  528.     kOperandMouseLocalHLoc        = 5120,                            /* [TargetAtoms aTrack] */
  529.     kOperandMouseLocalVLoc        = 5121,                            /* [TargetAtoms aTrack] */
  530.     kOperandKeyIsDown            = 5122,                            /* [short modKeys, char asciiValue] */
  531.     kOperandRandom                = 5123                            /* [short min, short max] */
  532. };
  533.  
  534.  
  535. enum {
  536.     kFirstMovieAction            = kActionMovieSetVolume,
  537.     kLastMovieAction            = kActionMovieChanged,
  538.     kFirstTrackAction            = kActionTrackSetVolume,
  539.     kLastTrackAction            = kActionTrackSetClip,
  540.     kFirstSpriteAction            = kActionSpriteSetMatrix,
  541.     kLastSpriteAction            = kActionSpriteStretch,
  542.     kFirstQTVRAction            = kActionQTVRSetPanAngle,
  543.     kLastQTVRAction                = kActionQTVRGoToNodeID,
  544.     kFirstMusicAction            = kActionMusicPlayNote,
  545.     kLastMusicAction            = kActionMusicSetController,
  546.     kFirstSystemAction            = kActionCase,
  547.     kLastSystemAction            = kActionPopAndGotoLabeledTime,
  548.     kFirstSpriteTrackAction        = kActionSpriteTrackSetVariable,
  549.     kLastSpriteTrackAction        = kActionSpriteTrackSetVariable,
  550.     kFirstApplicationAction        = kActionApplicationNumberAndString,
  551.     kLastApplicationAction        = kActionApplicationNumberAndString,
  552.     kFirstAction                = kFirstMovieAction,
  553.     kLastAction                    = kActionApplicationNumberAndString
  554. };
  555.  
  556.  
  557. /* target atom types*/
  558.  
  559. enum {
  560.     kTargetMovie                = FOUR_CHAR_CODE('moov'),        /* no data */
  561.     kTargetTrackName            = FOUR_CHAR_CODE('trna'),        /* (PString trackName) */
  562.     kTargetTrackID                = FOUR_CHAR_CODE('trid'),        /* (long trackID) */
  563.     kTargetTrackType            = FOUR_CHAR_CODE('trty'),        /* (OSType trackType) */
  564.     kTargetTrackIndex            = FOUR_CHAR_CODE('trin'),        /* (long trackIndex) */
  565.     kTargetSpriteName            = FOUR_CHAR_CODE('spna'),        /* (PString spriteName) */
  566.     kTargetSpriteID                = FOUR_CHAR_CODE('spid'),        /* (QTAtomID spriteID) */
  567.     kTargetSpriteIndex            = FOUR_CHAR_CODE('spin')        /* (short spriteIndex) */
  568. };
  569.  
  570. /* action container atom types*/
  571.  
  572. enum {
  573.     kQTEventType                = FOUR_CHAR_CODE('evnt'),
  574.     kAction                        = FOUR_CHAR_CODE('actn'),
  575.     kWhichAction                = FOUR_CHAR_CODE('whic'),
  576.     kActionParameter            = FOUR_CHAR_CODE('parm'),
  577.     kActionTarget                = FOUR_CHAR_CODE('targ'),
  578.     kActionFlags                = FOUR_CHAR_CODE('flag'),
  579.     kActionParameterMinValue    = FOUR_CHAR_CODE('minv'),
  580.     kActionParameterMaxValue    = FOUR_CHAR_CODE('maxv'),
  581.     kActionListAtomType            = FOUR_CHAR_CODE('list'),
  582.     kExpressionContainerAtomType = FOUR_CHAR_CODE('expr'),
  583.     kConditionalAtomType        = FOUR_CHAR_CODE('test'),
  584.     kOperatorAtomType            = FOUR_CHAR_CODE('oper'),
  585.     kOperandAtomType            = FOUR_CHAR_CODE('oprn'),
  586.     kCommentAtomType            = FOUR_CHAR_CODE('why ')
  587. };
  588.  
  589. /* QTEvent types */
  590.  
  591. enum {
  592.     kQTEventMouseClick            = FOUR_CHAR_CODE('clik'),
  593.     kQTEventMouseClickEnd        = FOUR_CHAR_CODE('cend'),
  594.     kQTEventMouseClickEndTriggerButton = FOUR_CHAR_CODE('trig'),
  595.     kQTEventMouseEnter            = FOUR_CHAR_CODE('entr'),
  596.     kQTEventMouseExit            = FOUR_CHAR_CODE('exit'),
  597.     kQTEventFrameLoaded            = FOUR_CHAR_CODE('fram'),
  598.     kQTEventIdle                = FOUR_CHAR_CODE('idle'),
  599.     kQTEventRequestToModifyMovie = FOUR_CHAR_CODE('reqm')
  600. };
  601.  
  602. /* flags for the kActionFlags atom */
  603.  
  604. enum {
  605.     kActionFlagActionIsDelta    = 1L << 1,
  606.     kActionFlagParameterWrapsAround = 1L << 2,
  607.     kActionFlagActionIsToggle    = 1L << 3
  608. };
  609.  
  610. /* constants for kOperatorAtomType IDs (operator types)*/
  611.  
  612. enum {
  613.     kOperatorAdd                = FOUR_CHAR_CODE('add '),
  614.     kOperatorSubtract            = FOUR_CHAR_CODE('sub '),
  615.     kOperatorMultiply            = FOUR_CHAR_CODE('mult'),
  616.     kOperatorDivide                = FOUR_CHAR_CODE('div '),
  617.     kOperatorOr                    = FOUR_CHAR_CODE('or  '),
  618.     kOperatorAnd                = FOUR_CHAR_CODE('and '),
  619.     kOperatorNot                = FOUR_CHAR_CODE('not '),
  620.     kOperatorLessThan            = FOUR_CHAR_CODE('<   '),
  621.     kOperatorLessThanEqualTo    = FOUR_CHAR_CODE('<=  '),
  622.     kOperatorEqualTo            = FOUR_CHAR_CODE('=   '),
  623.     kOperatorNotEqualTo            = FOUR_CHAR_CODE('!=  '),
  624.     kOperatorGreaterThan        = FOUR_CHAR_CODE('>   '),
  625.     kOperatorGreaterThanEqualTo    = FOUR_CHAR_CODE('>=  '),
  626.     kOperatorModulo                = FOUR_CHAR_CODE('mod '),
  627.     kOperatorIntegerDivide        = FOUR_CHAR_CODE('idiv'),
  628.     kOperatorAbsoluteValue        = FOUR_CHAR_CODE('abs '),
  629.     kOperatorNegate                = FOUR_CHAR_CODE('neg ')
  630. };
  631.  
  632. /* constants for MediaPropertiesAtom*/
  633.  
  634. enum {
  635.     kMediaPropertyNonLinearAtomType = FOUR_CHAR_CODE('nonl'),
  636.     kMediaPropertyHasActions    = 105
  637. };
  638.  
  639. typedef CALLBACK_API( OSErr , MovieRgnCoverProcPtr )(Movie theMovie, RgnHandle changedRgn, long refcon);
  640. typedef CALLBACK_API( OSErr , MovieProgressProcPtr )(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon);
  641. typedef CALLBACK_API( OSErr , MovieDrawingCompleteProcPtr )(Movie theMovie, long refCon);
  642. typedef CALLBACK_API( OSErr , TrackTransferProcPtr )(Track t, long refCon);
  643. typedef CALLBACK_API( OSErr , GetMovieProcPtr )(long offset, long size, void *dataPtr, void *refCon);
  644. typedef CALLBACK_API( Boolean , MoviePreviewCallOutProcPtr )(long refcon);
  645. typedef CALLBACK_API( OSErr , TextMediaProcPtr )(Handle theText, Movie theMovie, short *displayFlag, long refcon);
  646. typedef CALLBACK_API( OSErr , ActionsProcPtr )(void *refcon, Track targetTrack, long targetRefCon, QTEventRecordPtr theEvent);
  647. typedef CALLBACK_API( void , MoviesErrorProcPtr )(OSErr theErr, long refcon);
  648. typedef STACK_UPP_TYPE(MoviesErrorProcPtr)                         MoviesErrorUPP;
  649. enum { uppMoviesErrorProcInfo = 0x00000380 };                     /* pascal no_return_value Func(2_bytes, 4_bytes) */
  650. #define NewMoviesErrorProc(userRoutine)                         (MoviesErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentArchitecture())
  651. #define CallMoviesErrorProc(userRoutine, theErr, refcon)         CALL_TWO_PARAMETER_UPP((userRoutine), uppMoviesErrorProcInfo, (theErr), (refcon))
  652. typedef STACK_UPP_TYPE(MovieRgnCoverProcPtr)                     MovieRgnCoverUPP;
  653. typedef STACK_UPP_TYPE(MovieProgressProcPtr)                     MovieProgressUPP;
  654. typedef STACK_UPP_TYPE(MovieDrawingCompleteProcPtr)             MovieDrawingCompleteUPP;
  655. typedef STACK_UPP_TYPE(TrackTransferProcPtr)                     TrackTransferUPP;
  656. typedef STACK_UPP_TYPE(GetMovieProcPtr)                         GetMovieUPP;
  657. typedef STACK_UPP_TYPE(MoviePreviewCallOutProcPtr)                 MoviePreviewCallOutUPP;
  658. typedef STACK_UPP_TYPE(TextMediaProcPtr)                         TextMediaUPP;
  659. typedef STACK_UPP_TYPE(ActionsProcPtr)                             ActionsUPP;
  660.  
  661. typedef ComponentInstance                 MediaHandler;
  662. typedef ComponentInstance                 DataHandler;
  663. typedef Component                         MediaHandlerComponent;
  664. typedef Component                         DataHandlerComponent;
  665. typedef ComponentResult                 HandlerError;
  666. /* TimeBase equates */
  667. typedef long                             TimeValue;
  668. typedef long                             TimeScale;
  669. typedef wide                             CompTimeValue;
  670.  
  671. enum {
  672.     loopTimeBase                = 1,
  673.     palindromeLoopTimeBase        = 2,
  674.     maintainTimeBaseZero        = 4
  675. };
  676.  
  677. typedef unsigned long                     TimeBaseFlags;
  678.  
  679. struct TimeBaseRecord {
  680.     long                             data[1];
  681. };
  682. typedef struct TimeBaseRecord            TimeBaseRecord;
  683.  
  684. typedef TimeBaseRecord *                TimeBase;
  685.  
  686. struct CallBackRecord {
  687.     long                             data[1];
  688. };
  689. typedef struct CallBackRecord            CallBackRecord;
  690.  
  691. typedef CallBackRecord *                QTCallBack;
  692.  
  693. struct TimeRecord {
  694.     CompTimeValue                     value;                        /* units */
  695.     TimeScale                         scale;                        /* units per second */
  696.     TimeBase                         base;
  697. };
  698. typedef struct TimeRecord                TimeRecord;
  699. /* CallBack equates */
  700.  
  701. enum {
  702.     triggerTimeFwd                = 0x0001,                        /* when curTime exceeds triggerTime going forward */
  703.     triggerTimeBwd                = 0x0002,                        /* when curTime exceeds triggerTime going backwards */
  704.     triggerTimeEither            = 0x0003,                        /* when curTime exceeds triggerTime going either direction */
  705.     triggerRateLT                = 0x0004,                        /* when rate changes to less than trigger value */
  706.     triggerRateGT                = 0x0008,                        /* when rate changes to greater than trigger value */
  707.     triggerRateEqual            = 0x0010,                        /* when rate changes to equal trigger value */
  708.     triggerRateLTE                = triggerRateLT | triggerRateEqual,
  709.     triggerRateGTE                = triggerRateGT | triggerRateEqual,
  710.     triggerRateNotEqual            = triggerRateGT | triggerRateEqual | triggerRateLT,
  711.     triggerRateChange            = 0,
  712.     triggerAtStart                = 0x0001,
  713.     triggerAtStop                = 0x0002
  714. };
  715.  
  716.  
  717. typedef unsigned short                     QTCallBackFlags;
  718.  
  719. enum {
  720.     timeBaseBeforeStartTime        = 1,
  721.     timeBaseAfterStopTime        = 2
  722. };
  723.  
  724. typedef unsigned long                     TimeBaseStatus;
  725.  
  726. enum {
  727.     callBackAtTime                = 1,
  728.     callBackAtRate                = 2,
  729.     callBackAtTimeJump            = 3,
  730.     callBackAtExtremes            = 4,
  731.     callBackAtInterrupt            = 0x8000,
  732.     callBackAtDeferredTask        = 0x4000
  733. };
  734.  
  735. typedef unsigned short                     QTCallBackType;
  736. typedef CALLBACK_API( void , QTCallBackProcPtr )(QTCallBack cb, long refCon);
  737. typedef STACK_UPP_TYPE(QTCallBackProcPtr)                         QTCallBackUPP;
  738.  
  739. enum {
  740.     qtcbNeedsRateChanges        = 1,                            /* wants to know about rate changes */
  741.     qtcbNeedsTimeChanges        = 2,                            /* wants to know about time changes */
  742.     qtcbNeedsStartStopChanges    = 4                                /* wants to know when TimeBase start/stop is changed*/
  743. };
  744.  
  745.  
  746. struct QTCallBackHeader {
  747.     long                             callBackFlags;
  748.     long                             reserved1;
  749.     SInt8                             qtPrivate[40];
  750. };
  751. typedef struct QTCallBackHeader            QTCallBackHeader;
  752. typedef CALLBACK_API( void , QTSyncTaskProcPtr )(void *task);
  753. typedef STACK_UPP_TYPE(QTSyncTaskProcPtr)                         QTSyncTaskUPP;
  754.  
  755. struct QTSyncTaskRecord {
  756.     void *                            qLink;
  757.     QTSyncTaskUPP                     proc;
  758. };
  759. typedef struct QTSyncTaskRecord            QTSyncTaskRecord;
  760.  
  761. typedef QTSyncTaskRecord *                QTSyncTaskPtr;
  762.  
  763. enum {
  764.     keepInRam                    = 1 << 0,                        /* load and make non-purgable*/
  765.     unkeepInRam                    = 1 << 1,                        /* mark as purgable*/
  766.     flushFromRam                = 1 << 2,                        /* empty those handles*/
  767.     loadForwardTrackEdits        = 1 << 3,                        /*    load track edits into ram for playing forward*/
  768.     loadBackwardTrackEdits        = 1 << 4                        /*    load track edits into ram for playing in reverse*/
  769. };
  770.  
  771.  
  772. enum {
  773.     newMovieActive                = 1 << 0,
  774.     newMovieDontResolveDataRefs    = 1 << 1,
  775.     newMovieDontAskUnresolvedDataRefs = 1 << 2,
  776.     newMovieDontAutoAlternates    = 1 << 3,
  777.     newMovieDontUpdateForeBackPointers = 1 << 4
  778. };
  779.  
  780. /* track usage bits */
  781.  
  782. enum {
  783.     trackUsageInMovie            = 1 << 1,
  784.     trackUsageInPreview            = 1 << 2,
  785.     trackUsageInPoster            = 1 << 3
  786. };
  787.  
  788. /* Add/GetMediaSample flags */
  789.  
  790. enum {
  791.     mediaSampleNotSync            = 1 << 0,                        /* sample is not a sync sample (eg. is frame differenced */
  792.     mediaSampleShadowSync        = 1 << 1                        /* sample is a shadow sync */
  793. };
  794.  
  795.  
  796. enum {
  797.     pasteInParallel                = 1 << 0,
  798.     showUserSettingsDialog        = 1 << 1,
  799.     movieToFileOnlyExport        = 1 << 2,
  800.     movieFileSpecValid            = 1 << 3
  801. };
  802.  
  803.  
  804. enum {
  805.     nextTimeMediaSample            = 1 << 0,
  806.     nextTimeMediaEdit            = 1 << 1,
  807.     nextTimeTrackEdit            = 1 << 2,
  808.     nextTimeSyncSample            = 1 << 3,
  809.     nextTimeStep                = 1 << 4,
  810.     nextTimeEdgeOK                = 1 << 14,
  811.     nextTimeIgnoreActiveSegment    = 1 << 15
  812. };
  813.  
  814. typedef unsigned short                     nextTimeFlagsEnum;
  815.  
  816. enum {
  817.     createMovieFileDeleteCurFile = 1L << 31,
  818.     createMovieFileDontCreateMovie = 1L << 30,
  819.     createMovieFileDontOpenFile    = 1L << 29,
  820.     createMovieFileDontCreateResFile = 1L << 28
  821. };
  822.  
  823. typedef unsigned long                     createMovieFileFlagsEnum;
  824.  
  825. enum {
  826.     flattenAddMovieToDataFork    = 1L << 0,
  827.     flattenActiveTracksOnly        = 1L << 2,
  828.     flattenDontInterleaveFlatten = 1L << 3,
  829.     flattenFSSpecPtrIsDataRefRecordPtr = 1L << 4,
  830.     flattenCompressMovieResource = 1L << 5,
  831.     flattenForceMovieResourceBeforeMovieData = 1L << 6
  832. };
  833.  
  834. typedef unsigned long                     movieFlattenFlagsEnum;
  835.  
  836. enum {
  837.     movieInDataForkResID        = -1                            /* magic res ID */
  838. };
  839.  
  840.  
  841. enum {
  842.     mcTopLeftMovie                = 1 << 0,                        /* usually centered */
  843.     mcScaleMovieToFit            = 1 << 1,                        /* usually only scales down */
  844.     mcWithBadge                    = 1 << 2,                        /* give me a badge */
  845.     mcNotVisible                = 1 << 3,                        /* don't show controller */
  846.     mcWithFrame                    = 1 << 4                        /* gimme a frame */
  847. };
  848.  
  849.  
  850. enum {
  851.     movieScrapDontZeroScrap        = 1 << 0,
  852.     movieScrapOnlyPutMovie        = 1 << 1
  853. };
  854.  
  855.  
  856. enum {
  857.     dataRefSelfReference        = 1 << 0,
  858.     dataRefWasNotResolved        = 1 << 1
  859. };
  860.  
  861. typedef unsigned long                     dataRefAttributesFlags;
  862.  
  863. enum {
  864.     hintsScrubMode                = 1 << 0,                        /* mask == && (if flags == scrub on, flags != scrub off) */
  865.     hintsLoop                    = 1 << 1,
  866.     hintsDontPurge                = 1 << 2,
  867.     hintsUseScreenBuffer        = 1 << 5,
  868.     hintsAllowInterlace            = 1 << 6,
  869.     hintsUseSoundInterp            = 1 << 7,
  870.     hintsHighQuality            = 1 << 8,                        /* slooooow */
  871.     hintsPalindrome                = 1 << 9,
  872.     hintsInactive                = 1 << 11,
  873.     hintsOffscreen                = 1 << 12,
  874.     hintsDontDraw                = 1 << 13,
  875.     hintsAllowBlacklining        = 1 << 14
  876. };
  877.  
  878. typedef unsigned long                     playHintsEnum;
  879.  
  880. enum {
  881.     mediaHandlerFlagBaseClient    = 1
  882. };
  883.  
  884. typedef unsigned long                     mediaHandlerFlagsEnum;
  885.  
  886. enum {
  887.     movieTrackMediaType            = 1 << 0,
  888.     movieTrackCharacteristic    = 1 << 1,
  889.     movieTrackEnabledOnly        = 1 << 2
  890. };
  891.  
  892.  
  893. struct SampleReferenceRecord {
  894.     long                             dataOffset;
  895.     long                             dataSize;
  896.     TimeValue                         durationPerSample;
  897.     long                             numberOfSamples;
  898.     short                             sampleFlags;
  899. };
  900. typedef struct SampleReferenceRecord    SampleReferenceRecord;
  901.  
  902. typedef SampleReferenceRecord *            SampleReferencePtr;
  903.  
  904. /*************************
  905. * Initialization Routines 
  906. **************************/
  907. EXTERN_API( void )
  908. CheckQuickTimeRegistration        (void *                    registrationKey,
  909.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x02DA, 0xAAAA);
  910.  
  911. EXTERN_API( OSErr )
  912. EnterMovies                        (void)                                                        TWOWORDINLINE(0x7001, 0xAAAA);
  913.  
  914. EXTERN_API( void )
  915. ExitMovies                        (void)                                                        TWOWORDINLINE(0x7002, 0xAAAA);
  916.  
  917. /*************************
  918. * Error Routines 
  919. **************************/
  920.  
  921. EXTERN_API( OSErr )
  922. GetMoviesError                    (void)                                                        TWOWORDINLINE(0x7003, 0xAAAA);
  923.  
  924. EXTERN_API( void )
  925. ClearMoviesStickyError            (void)                                                        THREEWORDINLINE(0x303C, 0x00DE, 0xAAAA);
  926.  
  927. EXTERN_API( OSErr )
  928. GetMoviesStickyError            (void)                                                        TWOWORDINLINE(0x7004, 0xAAAA);
  929.  
  930. EXTERN_API( void )
  931. SetMoviesErrorProc                (MoviesErrorUPP         errProc,
  932.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x00EF, 0xAAAA);
  933.  
  934. /*************************
  935. * Idle Routines 
  936. **************************/
  937. EXTERN_API( void )
  938. MoviesTask                        (Movie                     theMovie,
  939.                                  long                     maxMilliSecToUse)                    TWOWORDINLINE(0x7005, 0xAAAA);
  940.  
  941. EXTERN_API( OSErr )
  942. PrerollMovie                    (Movie                     theMovie,
  943.                                  TimeValue                 time,
  944.                                  Fixed                     Rate)                                TWOWORDINLINE(0x7006, 0xAAAA);
  945.  
  946. EXTERN_API( OSErr )
  947. LoadMovieIntoRam                (Movie                     theMovie,
  948.                                  TimeValue                 time,
  949.                                  TimeValue                 duration,
  950.                                  long                     flags)                                TWOWORDINLINE(0x7007, 0xAAAA);
  951.  
  952. EXTERN_API( OSErr )
  953. LoadTrackIntoRam                (Track                     theTrack,
  954.                                  TimeValue                 time,
  955.                                  TimeValue                 duration,
  956.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x016E, 0xAAAA);
  957.  
  958. EXTERN_API( OSErr )
  959. LoadMediaIntoRam                (Media                     theMedia,
  960.                                  TimeValue                 time,
  961.                                  TimeValue                 duration,
  962.                                  long                     flags)                                TWOWORDINLINE(0x7008, 0xAAAA);
  963.  
  964. EXTERN_API( void )
  965. SetMovieActive                    (Movie                     theMovie,
  966.                                  Boolean                 active)                                TWOWORDINLINE(0x7009, 0xAAAA);
  967.  
  968. EXTERN_API( Boolean )
  969. GetMovieActive                    (Movie                     theMovie)                            TWOWORDINLINE(0x700A, 0xAAAA);
  970.  
  971. /*************************
  972. * calls for playing movies, previews, posters
  973. **************************/
  974. EXTERN_API( void )
  975. StartMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x700B, 0xAAAA);
  976.  
  977. EXTERN_API( void )
  978. StopMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x700C, 0xAAAA);
  979.  
  980. EXTERN_API( void )
  981. GoToBeginningOfMovie            (Movie                     theMovie)                            TWOWORDINLINE(0x700D, 0xAAAA);
  982.  
  983. EXTERN_API( void )
  984. GoToEndOfMovie                    (Movie                     theMovie)                            TWOWORDINLINE(0x700E, 0xAAAA);
  985.  
  986. EXTERN_API( Boolean )
  987. IsMovieDone                        (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00DD, 0xAAAA);
  988.  
  989. EXTERN_API( Boolean )
  990. GetMoviePreviewMode                (Movie                     theMovie)                            TWOWORDINLINE(0x700F, 0xAAAA);
  991.  
  992. EXTERN_API( void )
  993. SetMoviePreviewMode                (Movie                     theMovie,
  994.                                  Boolean                 usePreview)                            TWOWORDINLINE(0x7010, 0xAAAA);
  995.  
  996. EXTERN_API( void )
  997. ShowMoviePoster                    (Movie                     theMovie)                            TWOWORDINLINE(0x7011, 0xAAAA);
  998.  
  999. EXTERN_API( void )
  1000. PlayMoviePreview                (Movie                     theMovie,
  1001.                                  MoviePreviewCallOutUPP  callOutProc,
  1002.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x00F2, 0xAAAA);
  1003.  
  1004. /*************************
  1005. * calls for controlling movies & tracks which are playing
  1006. **************************/
  1007. EXTERN_API( TimeBase )
  1008. GetMovieTimeBase                (Movie                     theMovie)                            TWOWORDINLINE(0x7012, 0xAAAA);
  1009.  
  1010. EXTERN_API( void )
  1011. SetMovieMasterTimeBase            (Movie                     theMovie,
  1012.                                  TimeBase                 tb,
  1013.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x0167, 0xAAAA);
  1014.  
  1015. EXTERN_API( void )
  1016. SetMovieMasterClock                (Movie                     theMovie,
  1017.                                  Component                 clockMeister,
  1018.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x0168, 0xAAAA);
  1019.  
  1020. EXTERN_API( void )
  1021. GetMovieGWorld                    (Movie                     theMovie,
  1022.                                  CGrafPtr *                port,
  1023.                                  GDHandle *                gdh)                                TWOWORDINLINE(0x7015, 0xAAAA);
  1024.  
  1025. EXTERN_API( void )
  1026. SetMovieGWorld                    (Movie                     theMovie,
  1027.                                  CGrafPtr                 port,
  1028.                                  GDHandle                 gdh)                                TWOWORDINLINE(0x7016, 0xAAAA);
  1029.  
  1030.  
  1031. enum {
  1032.     movieDrawingCallWhenChanged    = 0,
  1033.     movieDrawingCallAlways        = 1
  1034. };
  1035.  
  1036. EXTERN_API( void )
  1037. SetMovieDrawingCompleteProc        (Movie                     theMovie,
  1038.                                  long                     flags,
  1039.                                  MovieDrawingCompleteUPP  proc,
  1040.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x01DE, 0xAAAA);
  1041.  
  1042.  
  1043. EXTERN_API( void )
  1044. GetMovieNaturalBoundsRect        (Movie                     theMovie,
  1045.                                  Rect *                    naturalBounds)                        THREEWORDINLINE(0x303C, 0x022C, 0xAAAA);
  1046.  
  1047. EXTERN_API( Track )
  1048. GetNextTrackForCompositing        (Movie                     theMovie,
  1049.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x01FA, 0xAAAA);
  1050.  
  1051. EXTERN_API( Track )
  1052. GetPrevTrackForCompositing        (Movie                     theMovie,
  1053.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x01FB, 0xAAAA);
  1054.  
  1055. EXTERN_API( void )
  1056. SetTrackGWorld                    (Track                     theTrack,
  1057.                                  CGrafPtr                 port,
  1058.                                  GDHandle                 gdh,
  1059.                                  TrackTransferUPP         proc,
  1060.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x009D, 0xAAAA);
  1061.  
  1062. EXTERN_API( PicHandle )
  1063. GetMoviePict                    (Movie                     theMovie,
  1064.                                  TimeValue                 time)                                TWOWORDINLINE(0x701D, 0xAAAA);
  1065.  
  1066. EXTERN_API( PicHandle )
  1067. GetTrackPict                    (Track                     theTrack,
  1068.                                  TimeValue                 time)                                TWOWORDINLINE(0x701E, 0xAAAA);
  1069.  
  1070. EXTERN_API( PicHandle )
  1071. GetMoviePosterPict                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F7, 0xAAAA);
  1072.  
  1073. /* called between Begin & EndUpdate */
  1074. EXTERN_API( OSErr )
  1075. UpdateMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x701F, 0xAAAA);
  1076.  
  1077. EXTERN_API( OSErr )
  1078. InvalidateMovieRegion            (Movie                     theMovie,
  1079.                                  RgnHandle                 invalidRgn)                            THREEWORDINLINE(0x303C, 0x022A, 0xAAAA);
  1080.  
  1081. /**** spatial movie routines ****/
  1082. EXTERN_API( void )
  1083. GetMovieBox                        (Movie                     theMovie,
  1084.                                  Rect *                    boxRect)                            THREEWORDINLINE(0x303C, 0x00F9, 0xAAAA);
  1085.  
  1086. EXTERN_API( void )
  1087. SetMovieBox                        (Movie                     theMovie,
  1088.                                  const Rect *            boxRect)                            THREEWORDINLINE(0x303C, 0x00FA, 0xAAAA);
  1089.  
  1090. EXTERN_API( RgnHandle )
  1091. GetMovieDisplayClipRgn            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FC, 0xAAAA);
  1092.  
  1093. EXTERN_API( void )
  1094. SetMovieDisplayClipRgn            (Movie                     theMovie,
  1095.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x00FD, 0xAAAA);
  1096.  
  1097. EXTERN_API( RgnHandle )
  1098. GetMovieClipRgn                    (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0100, 0xAAAA);
  1099.  
  1100. EXTERN_API( void )
  1101. SetMovieClipRgn                    (Movie                     theMovie,
  1102.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x0101, 0xAAAA);
  1103.  
  1104. EXTERN_API( RgnHandle )
  1105. GetTrackClipRgn                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0102, 0xAAAA);
  1106.  
  1107. EXTERN_API( void )
  1108. SetTrackClipRgn                    (Track                     theTrack,
  1109.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x0103, 0xAAAA);
  1110.  
  1111. EXTERN_API( RgnHandle )
  1112. GetMovieDisplayBoundsRgn        (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FB, 0xAAAA);
  1113.  
  1114. EXTERN_API( RgnHandle )
  1115. GetTrackDisplayBoundsRgn        (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0112, 0xAAAA);
  1116.  
  1117. EXTERN_API( RgnHandle )
  1118. GetMovieBoundsRgn                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FE, 0xAAAA);
  1119.  
  1120. EXTERN_API( RgnHandle )
  1121. GetTrackMovieBoundsRgn            (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x00FF, 0xAAAA);
  1122.  
  1123. EXTERN_API( RgnHandle )
  1124. GetTrackBoundsRgn                (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0111, 0xAAAA);
  1125.  
  1126. EXTERN_API( PixMapHandle )
  1127. GetTrackMatte                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0115, 0xAAAA);
  1128.  
  1129. EXTERN_API( void )
  1130. SetTrackMatte                    (Track                     theTrack,
  1131.                                  PixMapHandle             theMatte)                            THREEWORDINLINE(0x303C, 0x0116, 0xAAAA);
  1132.  
  1133. EXTERN_API( void )
  1134. DisposeMatte                    (PixMapHandle             theMatte)                            THREEWORDINLINE(0x303C, 0x014A, 0xAAAA);
  1135.  
  1136. /*************************
  1137. * calls for getting/saving movies
  1138. **************************/
  1139. EXTERN_API( Movie )
  1140. NewMovie                        (long                     flags)                                THREEWORDINLINE(0x303C, 0x0187, 0xAAAA);
  1141.  
  1142. EXTERN_API( OSErr )
  1143. PutMovieIntoHandle                (Movie                     theMovie,
  1144.                                  Handle                 publicMovie)                        TWOWORDINLINE(0x7022, 0xAAAA);
  1145.  
  1146. EXTERN_API( OSErr )
  1147. PutMovieIntoDataFork            (Movie                     theMovie,
  1148.                                  short                     fRefNum,
  1149.                                  long                     offset,
  1150.                                  long                     maxSize)                            THREEWORDINLINE(0x303C, 0x01B4, 0xAAAA);
  1151.  
  1152. EXTERN_API( void )
  1153. DisposeMovie                    (Movie                     theMovie)                            TWOWORDINLINE(0x7023, 0xAAAA);
  1154.  
  1155. /*************************
  1156. * Movie State Routines
  1157. **************************/
  1158. EXTERN_API( unsigned long )
  1159. GetMovieCreationTime            (Movie                     theMovie)                            TWOWORDINLINE(0x7026, 0xAAAA);
  1160.  
  1161. EXTERN_API( unsigned long )
  1162. GetMovieModificationTime        (Movie                     theMovie)                            TWOWORDINLINE(0x7027, 0xAAAA);
  1163.  
  1164. EXTERN_API( TimeScale )
  1165. GetMovieTimeScale                (Movie                     theMovie)                            TWOWORDINLINE(0x7029, 0xAAAA);
  1166.  
  1167. EXTERN_API( void )
  1168. SetMovieTimeScale                (Movie                     theMovie,
  1169.                                  TimeScale                 timeScale)                            TWOWORDINLINE(0x702A, 0xAAAA);
  1170.  
  1171. EXTERN_API( TimeValue )
  1172. GetMovieDuration                (Movie                     theMovie)                            TWOWORDINLINE(0x702B, 0xAAAA);
  1173.  
  1174. EXTERN_API( Fixed )
  1175. GetMovieRate                    (Movie                     theMovie)                            TWOWORDINLINE(0x702C, 0xAAAA);
  1176.  
  1177. EXTERN_API( void )
  1178. SetMovieRate                    (Movie                     theMovie,
  1179.                                  Fixed                     rate)                                TWOWORDINLINE(0x702D, 0xAAAA);
  1180.  
  1181. EXTERN_API( Fixed )
  1182. GetMoviePreferredRate            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F3, 0xAAAA);
  1183.  
  1184. EXTERN_API( void )
  1185. SetMoviePreferredRate            (Movie                     theMovie,
  1186.                                  Fixed                     rate)                                THREEWORDINLINE(0x303C, 0x00F4, 0xAAAA);
  1187.  
  1188. EXTERN_API( short )
  1189. GetMoviePreferredVolume            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F5, 0xAAAA);
  1190.  
  1191. EXTERN_API( void )
  1192. SetMoviePreferredVolume            (Movie                     theMovie,
  1193.                                  short                     volume)                                THREEWORDINLINE(0x303C, 0x00F6, 0xAAAA);
  1194.  
  1195. EXTERN_API( short )
  1196. GetMovieVolume                    (Movie                     theMovie)                            TWOWORDINLINE(0x702E, 0xAAAA);
  1197.  
  1198. EXTERN_API( void )
  1199. SetMovieVolume                    (Movie                     theMovie,
  1200.                                  short                     volume)                                TWOWORDINLINE(0x702F, 0xAAAA);
  1201.  
  1202. EXTERN_API( void )
  1203. GetMovieMatrix                    (Movie                     theMovie,
  1204.                                  MatrixRecord *            matrix)                                TWOWORDINLINE(0x7031, 0xAAAA);
  1205.  
  1206. EXTERN_API( void )
  1207. SetMovieMatrix                    (Movie                     theMovie,
  1208.                                  const MatrixRecord *    matrix)                                TWOWORDINLINE(0x7032, 0xAAAA);
  1209.  
  1210. EXTERN_API( void )
  1211. GetMoviePreviewTime                (Movie                     theMovie,
  1212.                                  TimeValue *            previewTime,
  1213.                                  TimeValue *            previewDuration)                    TWOWORDINLINE(0x7033, 0xAAAA);
  1214.  
  1215. EXTERN_API( void )
  1216. SetMoviePreviewTime                (Movie                     theMovie,
  1217.                                  TimeValue                 previewTime,
  1218.                                  TimeValue                 previewDuration)                    TWOWORDINLINE(0x7034, 0xAAAA);
  1219.  
  1220. EXTERN_API( TimeValue )
  1221. GetMoviePosterTime                (Movie                     theMovie)                            TWOWORDINLINE(0x7035, 0xAAAA);
  1222.  
  1223. EXTERN_API( void )
  1224. SetMoviePosterTime                (Movie                     theMovie,
  1225.                                  TimeValue                 posterTime)                            TWOWORDINLINE(0x7036, 0xAAAA);
  1226.  
  1227. EXTERN_API( void )
  1228. GetMovieSelection                (Movie                     theMovie,
  1229.                                  TimeValue *            selectionTime,
  1230.                                  TimeValue *            selectionDuration)                    TWOWORDINLINE(0x7037, 0xAAAA);
  1231.  
  1232. EXTERN_API( void )
  1233. SetMovieSelection                (Movie                     theMovie,
  1234.                                  TimeValue                 selectionTime,
  1235.                                  TimeValue                 selectionDuration)                    TWOWORDINLINE(0x7038, 0xAAAA);
  1236.  
  1237. EXTERN_API( void )
  1238. SetMovieActiveSegment            (Movie                     theMovie,
  1239.                                  TimeValue                 startTime,
  1240.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x015C, 0xAAAA);
  1241.  
  1242. EXTERN_API( void )
  1243. GetMovieActiveSegment            (Movie                     theMovie,
  1244.                                  TimeValue *            startTime,
  1245.                                  TimeValue *            duration)                            THREEWORDINLINE(0x303C, 0x015D, 0xAAAA);
  1246.  
  1247. EXTERN_API( TimeValue )
  1248. GetMovieTime                    (Movie                     theMovie,
  1249.                                  TimeRecord *            currentTime)                        TWOWORDINLINE(0x7039, 0xAAAA);
  1250.  
  1251. EXTERN_API( void )
  1252. SetMovieTime                    (Movie                     theMovie,
  1253.                                  const TimeRecord *        newtime)                            TWOWORDINLINE(0x703C, 0xAAAA);
  1254.  
  1255. EXTERN_API( void )
  1256. SetMovieTimeValue                (Movie                     theMovie,
  1257.                                  TimeValue                 newtime)                            TWOWORDINLINE(0x703D, 0xAAAA);
  1258.  
  1259.  
  1260. EXTERN_API( UserData )
  1261. GetMovieUserData                (Movie                     theMovie)                            TWOWORDINLINE(0x703E, 0xAAAA);
  1262.  
  1263.  
  1264. /*************************
  1265. * Track/Media finding routines
  1266. **************************/
  1267. EXTERN_API( long )
  1268. GetMovieTrackCount                (Movie                     theMovie)                            TWOWORDINLINE(0x703F, 0xAAAA);
  1269.  
  1270. EXTERN_API( Track )
  1271. GetMovieTrack                    (Movie                     theMovie,
  1272.                                  long                     trackID)                            TWOWORDINLINE(0x7040, 0xAAAA);
  1273.  
  1274. EXTERN_API( Track )
  1275. GetMovieIndTrack                (Movie                     theMovie,
  1276.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x0117, 0xAAAA);
  1277.  
  1278. EXTERN_API( Track )
  1279. GetMovieIndTrackType            (Movie                     theMovie,
  1280.                                  long                     index,
  1281.                                  OSType                 trackType,
  1282.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0208, 0xAAAA);
  1283.  
  1284. EXTERN_API( long )
  1285. GetTrackID                        (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0127, 0xAAAA);
  1286.  
  1287. EXTERN_API( Movie )
  1288. GetTrackMovie                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x00D0, 0xAAAA);
  1289.  
  1290. /*************************
  1291. * Track creation routines
  1292. **************************/
  1293. EXTERN_API( Track )
  1294. NewMovieTrack                    (Movie                     theMovie,
  1295.                                  Fixed                     width,
  1296.                                  Fixed                     height,
  1297.                                  short                     trackVolume)                        THREEWORDINLINE(0x303C, 0x0188, 0xAAAA);
  1298.  
  1299. EXTERN_API( void )
  1300. DisposeMovieTrack                (Track                     theTrack)                            TWOWORDINLINE(0x7042, 0xAAAA);
  1301.  
  1302. /*************************
  1303. * Track State routines
  1304. **************************/
  1305. EXTERN_API( unsigned long )
  1306. GetTrackCreationTime            (Track                     theTrack)                            TWOWORDINLINE(0x7043, 0xAAAA);
  1307.  
  1308. EXTERN_API( unsigned long )
  1309. GetTrackModificationTime        (Track                     theTrack)                            TWOWORDINLINE(0x7044, 0xAAAA);
  1310.  
  1311.  
  1312. EXTERN_API( Boolean )
  1313. GetTrackEnabled                    (Track                     theTrack)                            TWOWORDINLINE(0x7045, 0xAAAA);
  1314.  
  1315. EXTERN_API( void )
  1316. SetTrackEnabled                    (Track                     theTrack,
  1317.                                  Boolean                 isEnabled)                            TWOWORDINLINE(0x7046, 0xAAAA);
  1318.  
  1319. EXTERN_API( long )
  1320. GetTrackUsage                    (Track                     theTrack)                            TWOWORDINLINE(0x7047, 0xAAAA);
  1321.  
  1322. EXTERN_API( void )
  1323. SetTrackUsage                    (Track                     theTrack,
  1324.                                  long                     usage)                                TWOWORDINLINE(0x7048, 0xAAAA);
  1325.  
  1326. EXTERN_API( TimeValue )
  1327. GetTrackDuration                (Track                     theTrack)                            TWOWORDINLINE(0x704B, 0xAAAA);
  1328.  
  1329. EXTERN_API( TimeValue )
  1330. GetTrackOffset                    (Track                     theTrack)                            TWOWORDINLINE(0x704C, 0xAAAA);
  1331.  
  1332. EXTERN_API( void )
  1333. SetTrackOffset                    (Track                     theTrack,
  1334.                                  TimeValue                 movieOffsetTime)                    TWOWORDINLINE(0x704D, 0xAAAA);
  1335.  
  1336. EXTERN_API( short )
  1337. GetTrackLayer                    (Track                     theTrack)                            TWOWORDINLINE(0x7050, 0xAAAA);
  1338.  
  1339. EXTERN_API( void )
  1340. SetTrackLayer                    (Track                     theTrack,
  1341.                                  short                     layer)                                TWOWORDINLINE(0x7051, 0xAAAA);
  1342.  
  1343. EXTERN_API( Track )
  1344. GetTrackAlternate                (Track                     theTrack)                            TWOWORDINLINE(0x7052, 0xAAAA);
  1345.  
  1346. EXTERN_API( void )
  1347. SetTrackAlternate                (Track                     theTrack,
  1348.                                  Track                     alternateT)                            TWOWORDINLINE(0x7053, 0xAAAA);
  1349.  
  1350. EXTERN_API( void )
  1351. SetAutoTrackAlternatesEnabled    (Movie                     theMovie,
  1352.                                  Boolean                 enable)                                THREEWORDINLINE(0x303C, 0x015E, 0xAAAA);
  1353.  
  1354. EXTERN_API( void )
  1355. SelectMovieAlternates            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x015F, 0xAAAA);
  1356.  
  1357. EXTERN_API( short )
  1358. GetTrackVolume                    (Track                     theTrack)                            TWOWORDINLINE(0x7054, 0xAAAA);
  1359.  
  1360. EXTERN_API( void )
  1361. SetTrackVolume                    (Track                     theTrack,
  1362.                                  short                     volume)                                TWOWORDINLINE(0x7055, 0xAAAA);
  1363.  
  1364. EXTERN_API( void )
  1365. GetTrackMatrix                    (Track                     theTrack,
  1366.                                  MatrixRecord *            matrix)                                TWOWORDINLINE(0x7056, 0xAAAA);
  1367.  
  1368. EXTERN_API( void )
  1369. SetTrackMatrix                    (Track                     theTrack,
  1370.                                  const MatrixRecord *    matrix)                                TWOWORDINLINE(0x7057, 0xAAAA);
  1371.  
  1372. EXTERN_API( void )
  1373. GetTrackDimensions                (Track                     theTrack,
  1374.                                  Fixed *                width,
  1375.                                  Fixed *                height)                                TWOWORDINLINE(0x705D, 0xAAAA);
  1376.  
  1377. EXTERN_API( void )
  1378. SetTrackDimensions                (Track                     theTrack,
  1379.                                  Fixed                     width,
  1380.                                  Fixed                     height)                                TWOWORDINLINE(0x705E, 0xAAAA);
  1381.  
  1382. EXTERN_API( UserData )
  1383. GetTrackUserData                (Track                     theTrack)                            TWOWORDINLINE(0x705F, 0xAAAA);
  1384.  
  1385. EXTERN_API( OSErr )
  1386. GetTrackDisplayMatrix            (Track                     theTrack,
  1387.                                  MatrixRecord *            matrix)                                THREEWORDINLINE(0x303C, 0x0263, 0xAAAA);
  1388.  
  1389. EXTERN_API( OSErr )
  1390. GetTrackSoundLocalizationSettings (Track                 theTrack,
  1391.                                  Handle *                settings)                            THREEWORDINLINE(0x303C, 0x0282, 0xAAAA);
  1392.  
  1393. EXTERN_API( OSErr )
  1394. SetTrackSoundLocalizationSettings (Track                 theTrack,
  1395.                                  Handle                 settings)                            THREEWORDINLINE(0x303C, 0x0283, 0xAAAA);
  1396.  
  1397. /*************************
  1398. * get Media routines
  1399. **************************/
  1400. EXTERN_API( Media )
  1401. NewTrackMedia                    (Track                     theTrack,
  1402.                                  OSType                 mediaType,
  1403.                                  TimeScale                 timeScale,
  1404.                                  Handle                 dataRef,
  1405.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x018E, 0xAAAA);
  1406.  
  1407. EXTERN_API( void )
  1408. DisposeTrackMedia                (Media                     theMedia)                            TWOWORDINLINE(0x7061, 0xAAAA);
  1409.  
  1410. EXTERN_API( Media )
  1411. GetTrackMedia                    (Track                     theTrack)                            TWOWORDINLINE(0x7062, 0xAAAA);
  1412.  
  1413. EXTERN_API( Track )
  1414. GetMediaTrack                    (Media                     theMedia)                            THREEWORDINLINE(0x303C, 0x00C5, 0xAAAA);
  1415.  
  1416.  
  1417.  
  1418. /*************************
  1419. * Media State routines
  1420. **************************/
  1421. EXTERN_API( unsigned long )
  1422. GetMediaCreationTime            (Media                     theMedia)                            TWOWORDINLINE(0x7066, 0xAAAA);
  1423.  
  1424. EXTERN_API( unsigned long )
  1425. GetMediaModificationTime        (Media                     theMedia)                            TWOWORDINLINE(0x7067, 0xAAAA);
  1426.  
  1427. EXTERN_API( TimeScale )
  1428. GetMediaTimeScale                (Media                     theMedia)                            TWOWORDINLINE(0x7068, 0xAAAA);
  1429.  
  1430. EXTERN_API( void )
  1431. SetMediaTimeScale                (Media                     theMedia,
  1432.                                  TimeScale                 timeScale)                            TWOWORDINLINE(0x7069, 0xAAAA);
  1433.  
  1434. EXTERN_API( TimeValue )
  1435. GetMediaDuration                (Media                     theMedia)                            TWOWORDINLINE(0x706A, 0xAAAA);
  1436.  
  1437. EXTERN_API( short )
  1438. GetMediaLanguage                (Media                     theMedia)                            TWOWORDINLINE(0x706B, 0xAAAA);
  1439.  
  1440. EXTERN_API( void )
  1441. SetMediaLanguage                (Media                     theMedia,
  1442.                                  short                     language)                            TWOWORDINLINE(0x706C, 0xAAAA);
  1443.  
  1444. EXTERN_API( short )
  1445. GetMediaQuality                    (Media                     theMedia)                            TWOWORDINLINE(0x706D, 0xAAAA);
  1446.  
  1447. EXTERN_API( void )
  1448. SetMediaQuality                    (Media                     theMedia,
  1449.                                  short                     quality)                            TWOWORDINLINE(0x706E, 0xAAAA);
  1450.  
  1451. EXTERN_API( void )
  1452. GetMediaHandlerDescription        (Media                     theMedia,
  1453.                                  OSType *                mediaType,
  1454.                                  Str255                 creatorName,
  1455.                                  OSType *                creatorManufacturer)                TWOWORDINLINE(0x706F, 0xAAAA);
  1456.  
  1457. EXTERN_API( UserData )
  1458. GetMediaUserData                (Media                     theMedia)                            TWOWORDINLINE(0x7070, 0xAAAA);
  1459.  
  1460. EXTERN_API( OSErr )
  1461. GetMediaInputMap                (Media                     theMedia,
  1462.                                  QTAtomContainer *        inputMap)                            THREEWORDINLINE(0x303C, 0x0249, 0xAAAA);
  1463.  
  1464. EXTERN_API( OSErr )
  1465. SetMediaInputMap                (Media                     theMedia,
  1466.                                  QTAtomContainer         inputMap)                            THREEWORDINLINE(0x303C, 0x024A, 0xAAAA);
  1467.  
  1468. /*************************
  1469. * Media Handler routines
  1470. **************************/
  1471. EXTERN_API( MediaHandler )
  1472. GetMediaHandler                    (Media                     theMedia)                            TWOWORDINLINE(0x7071, 0xAAAA);
  1473.  
  1474. EXTERN_API( OSErr )
  1475. SetMediaHandler                    (Media                     theMedia,
  1476.                                  MediaHandlerComponent     mH)                                    THREEWORDINLINE(0x303C, 0x0190, 0xAAAA);
  1477.  
  1478.  
  1479. /*************************
  1480. * Media's Data routines
  1481. **************************/
  1482. EXTERN_API( OSErr )
  1483. BeginMediaEdits                    (Media                     theMedia)                            TWOWORDINLINE(0x7072, 0xAAAA);
  1484.  
  1485. EXTERN_API( OSErr )
  1486. EndMediaEdits                    (Media                     theMedia)                            TWOWORDINLINE(0x7073, 0xAAAA);
  1487.  
  1488. EXTERN_API( OSErr )
  1489. SetMediaDefaultDataRefIndex        (Media                     theMedia,
  1490.                                  short                     index)                                THREEWORDINLINE(0x303C, 0x01E0, 0xAAAA);
  1491.  
  1492. EXTERN_API( void )
  1493. GetMediaDataHandlerDescription    (Media                     theMedia,
  1494.                                  short                     index,
  1495.                                  OSType *                dhType,
  1496.                                  Str255                 creatorName,
  1497.                                  OSType *                creatorManufacturer)                THREEWORDINLINE(0x303C, 0x019E, 0xAAAA);
  1498.  
  1499. EXTERN_API( DataHandler )
  1500. GetMediaDataHandler                (Media                     theMedia,
  1501.                                  short                     index)                                THREEWORDINLINE(0x303C, 0x019F, 0xAAAA);
  1502.  
  1503. EXTERN_API( OSErr )
  1504. SetMediaDataHandler                (Media                     theMedia,
  1505.                                  short                     index,
  1506.                                  DataHandlerComponent     dataHandler)                        THREEWORDINLINE(0x303C, 0x01A0, 0xAAAA);
  1507.  
  1508. EXTERN_API( Component )
  1509. GetDataHandler                    (Handle                 dataRef,
  1510.                                  OSType                 dataHandlerSubType,
  1511.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x01ED, 0xAAAA);
  1512.  
  1513.  
  1514. /*************************
  1515. * Media Sample Table Routines
  1516. **************************/
  1517. EXTERN_API( long )
  1518. GetMediaSampleDescriptionCount    (Media                     theMedia)                            TWOWORDINLINE(0x7077, 0xAAAA);
  1519.  
  1520. EXTERN_API( void )
  1521. GetMediaSampleDescription        (Media                     theMedia,
  1522.                                  long                     index,
  1523.                                  SampleDescriptionHandle  descH)                            TWOWORDINLINE(0x7078, 0xAAAA);
  1524.  
  1525. EXTERN_API( OSErr )
  1526. SetMediaSampleDescription        (Media                     theMedia,
  1527.                                  long                     index,
  1528.                                  SampleDescriptionHandle  descH)                            THREEWORDINLINE(0x303C, 0x01D0, 0xAAAA);
  1529.  
  1530. EXTERN_API( long )
  1531. GetMediaSampleCount                (Media                     theMedia)                            TWOWORDINLINE(0x7079, 0xAAAA);
  1532.  
  1533. EXTERN_API( long )
  1534. GetMediaSyncSampleCount            (Media                     theMedia)                            THREEWORDINLINE(0x303C, 0x02B2, 0xAAAA);
  1535.  
  1536. EXTERN_API( void )
  1537. SampleNumToMediaTime            (Media                     theMedia,
  1538.                                  long                     logicalSampleNum,
  1539.                                  TimeValue *            sampleTime,
  1540.                                  TimeValue *            sampleDuration)                        TWOWORDINLINE(0x707A, 0xAAAA);
  1541.  
  1542. EXTERN_API( void )
  1543. MediaTimeToSampleNum            (Media                     theMedia,
  1544.                                  TimeValue                 time,
  1545.                                  long *                    sampleNum,
  1546.                                  TimeValue *            sampleTime,
  1547.                                  TimeValue *            sampleDuration)                        TWOWORDINLINE(0x707B, 0xAAAA);
  1548.  
  1549.  
  1550. EXTERN_API( OSErr )
  1551. AddMediaSample                    (Media                     theMedia,
  1552.                                  Handle                 dataIn,
  1553.                                  long                     inOffset,
  1554.                                  unsigned long             size,
  1555.                                  TimeValue                 durationPerSample,
  1556.                                  SampleDescriptionHandle  sampleDescriptionH,
  1557.                                  long                     numberOfSamples,
  1558.                                  short                     sampleFlags,
  1559.                                  TimeValue *            sampleTime)                            TWOWORDINLINE(0x707C, 0xAAAA);
  1560.  
  1561. EXTERN_API( OSErr )
  1562. AddMediaSampleReference            (Media                     theMedia,
  1563.                                  long                     dataOffset,
  1564.                                  unsigned long             size,
  1565.                                  TimeValue                 durationPerSample,
  1566.                                  SampleDescriptionHandle  sampleDescriptionH,
  1567.                                  long                     numberOfSamples,
  1568.                                  short                     sampleFlags,
  1569.                                  TimeValue *            sampleTime)                            TWOWORDINLINE(0x707D, 0xAAAA);
  1570.  
  1571. EXTERN_API( OSErr )
  1572. AddMediaSampleReferences        (Media                     theMedia,
  1573.                                  SampleDescriptionHandle  sampleDescriptionH,
  1574.                                  long                     numberOfSamples,
  1575.                                  SampleReferencePtr     sampleRefs,
  1576.                                  TimeValue *            sampleTime)                            THREEWORDINLINE(0x303C, 0x01F7, 0xAAAA);
  1577.  
  1578. EXTERN_API( OSErr )
  1579. GetMediaSample                    (Media                     theMedia,
  1580.                                  Handle                 dataOut,
  1581.                                  long                     maxSizeToGrow,
  1582.                                  long *                    size,
  1583.                                  TimeValue                 time,
  1584.                                  TimeValue *            sampleTime,
  1585.                                  TimeValue *            durationPerSample,
  1586.                                  SampleDescriptionHandle  sampleDescriptionH,
  1587.                                  long *                    sampleDescriptionIndex,
  1588.                                  long                     maxNumberOfSamples,
  1589.                                  long *                    numberOfSamples,
  1590.                                  short *                sampleFlags)                        TWOWORDINLINE(0x707E, 0xAAAA);
  1591.  
  1592. EXTERN_API( OSErr )
  1593. GetMediaSampleReference            (Media                     theMedia,
  1594.                                  long *                    dataOffset,
  1595.                                  long *                    size,
  1596.                                  TimeValue                 time,
  1597.                                  TimeValue *            sampleTime,
  1598.                                  TimeValue *            durationPerSample,
  1599.                                  SampleDescriptionHandle  sampleDescriptionH,
  1600.                                  long *                    sampleDescriptionIndex,
  1601.                                  long                     maxNumberOfSamples,
  1602.                                  long *                    numberOfSamples,
  1603.                                  short *                sampleFlags)                        TWOWORDINLINE(0x707F, 0xAAAA);
  1604.  
  1605. EXTERN_API( OSErr )
  1606. GetMediaSampleReferences        (Media                     theMedia,
  1607.                                  TimeValue                 time,
  1608.                                  TimeValue *            sampleTime,
  1609.                                  SampleDescriptionHandle  sampleDescriptionH,
  1610.                                  long *                    sampleDescriptionIndex,
  1611.                                  long                     maxNumberOfEntries,
  1612.                                  long *                    actualNumberofEntries,
  1613.                                  SampleReferencePtr     sampleRefs)                            THREEWORDINLINE(0x303C, 0x0235, 0xAAAA);
  1614.  
  1615. EXTERN_API( OSErr )
  1616. SetMediaPreferredChunkSize        (Media                     theMedia,
  1617.                                  long                     maxChunkSize)                        THREEWORDINLINE(0x303C, 0x01F8, 0xAAAA);
  1618.  
  1619. EXTERN_API( OSErr )
  1620. GetMediaPreferredChunkSize        (Media                     theMedia,
  1621.                                  long *                    maxChunkSize)                        THREEWORDINLINE(0x303C, 0x01F9, 0xAAAA);
  1622.  
  1623. EXTERN_API( OSErr )
  1624. SetMediaShadowSync                (Media                     theMedia,
  1625.                                  long                     frameDiffSampleNum,
  1626.                                  long                     syncSampleNum)                        THREEWORDINLINE(0x303C, 0x0121, 0xAAAA);
  1627.  
  1628. EXTERN_API( OSErr )
  1629. GetMediaShadowSync                (Media                     theMedia,
  1630.                                  long                     frameDiffSampleNum,
  1631.                                  long *                    syncSampleNum)                        THREEWORDINLINE(0x303C, 0x0122, 0xAAAA);
  1632.  
  1633. /*************************
  1634. * Editing Routines
  1635. **************************/
  1636. EXTERN_API( OSErr )
  1637. InsertMediaIntoTrack            (Track                     theTrack,
  1638.                                  TimeValue                 trackStart,
  1639.                                  TimeValue                 mediaTime,
  1640.                                  TimeValue                 mediaDuration,
  1641.                                  Fixed                     mediaRate)                            THREEWORDINLINE(0x303C, 0x0183, 0xAAAA);
  1642.  
  1643. EXTERN_API( OSErr )
  1644. InsertTrackSegment                (Track                     srcTrack,
  1645.                                  Track                     dstTrack,
  1646.                                  TimeValue                 srcIn,
  1647.                                  TimeValue                 srcDuration,
  1648.                                  TimeValue                 dstIn)                                THREEWORDINLINE(0x303C, 0x0085, 0xAAAA);
  1649.  
  1650. EXTERN_API( OSErr )
  1651. InsertMovieSegment                (Movie                     srcMovie,
  1652.                                  Movie                     dstMovie,
  1653.                                  TimeValue                 srcIn,
  1654.                                  TimeValue                 srcDuration,
  1655.                                  TimeValue                 dstIn)                                THREEWORDINLINE(0x303C, 0x0086, 0xAAAA);
  1656.  
  1657. EXTERN_API( OSErr )
  1658. InsertEmptyTrackSegment            (Track                     dstTrack,
  1659.                                  TimeValue                 dstIn,
  1660.                                  TimeValue                 dstDuration)                        THREEWORDINLINE(0x303C, 0x0087, 0xAAAA);
  1661.  
  1662. EXTERN_API( OSErr )
  1663. InsertEmptyMovieSegment            (Movie                     dstMovie,
  1664.                                  TimeValue                 dstIn,
  1665.                                  TimeValue                 dstDuration)                        THREEWORDINLINE(0x303C, 0x0088, 0xAAAA);
  1666.  
  1667. EXTERN_API( OSErr )
  1668. DeleteTrackSegment                (Track                     theTrack,
  1669.                                  TimeValue                 startTime,
  1670.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0089, 0xAAAA);
  1671.  
  1672. EXTERN_API( OSErr )
  1673. DeleteMovieSegment                (Movie                     theMovie,
  1674.                                  TimeValue                 startTime,
  1675.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x008A, 0xAAAA);
  1676.  
  1677. EXTERN_API( OSErr )
  1678. ScaleTrackSegment                (Track                     theTrack,
  1679.                                  TimeValue                 startTime,
  1680.                                  TimeValue                 oldDuration,
  1681.                                  TimeValue                 newDuration)                        THREEWORDINLINE(0x303C, 0x008B, 0xAAAA);
  1682.  
  1683. EXTERN_API( OSErr )
  1684. ScaleMovieSegment                (Movie                     theMovie,
  1685.                                  TimeValue                 startTime,
  1686.                                  TimeValue                 oldDuration,
  1687.                                  TimeValue                 newDuration)                        THREEWORDINLINE(0x303C, 0x008C, 0xAAAA);
  1688.  
  1689.  
  1690. /*************************
  1691. * Hi-level Editing Routines
  1692. **************************/
  1693. EXTERN_API( Movie )
  1694. CutMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x008D, 0xAAAA);
  1695.  
  1696. EXTERN_API( Movie )
  1697. CopyMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x008E, 0xAAAA);
  1698.  
  1699. EXTERN_API( void )
  1700. PasteMovieSelection                (Movie                     theMovie,
  1701.                                  Movie                     src)                                THREEWORDINLINE(0x303C, 0x008F, 0xAAAA);
  1702.  
  1703. EXTERN_API( void )
  1704. AddMovieSelection                (Movie                     theMovie,
  1705.                                  Movie                     src)                                THREEWORDINLINE(0x303C, 0x0152, 0xAAAA);
  1706.  
  1707. EXTERN_API( void )
  1708. ClearMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00E1, 0xAAAA);
  1709.  
  1710. EXTERN_API( OSErr )
  1711. PasteHandleIntoMovie            (Handle                 h,
  1712.                                  OSType                 handleType,
  1713.                                  Movie                     theMovie,
  1714.                                  long                     flags,
  1715.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x00CB, 0xAAAA);
  1716.  
  1717. EXTERN_API( OSErr )
  1718. PutMovieIntoTypedHandle            (Movie                     theMovie,
  1719.                                  Track                     targetTrack,
  1720.                                  OSType                 handleType,
  1721.                                  Handle                 publicMovie,
  1722.                                  TimeValue                 start,
  1723.                                  TimeValue                 dur,
  1724.                                  long                     flags,
  1725.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x01CD, 0xAAAA);
  1726.  
  1727. EXTERN_API( Component )
  1728. IsScrapMovie                    (Track                     targetTrack)                        THREEWORDINLINE(0x303C, 0x00CC, 0xAAAA);
  1729.  
  1730. /*************************
  1731. * Middle-level Editing Routines
  1732. **************************/
  1733. EXTERN_API( OSErr )
  1734. CopyTrackSettings                (Track                     srcTrack,
  1735.                                  Track                     dstTrack)                            THREEWORDINLINE(0x303C, 0x0153, 0xAAAA);
  1736.  
  1737. EXTERN_API( OSErr )
  1738. CopyMovieSettings                (Movie                     srcMovie,
  1739.                                  Movie                     dstMovie)                            THREEWORDINLINE(0x303C, 0x0154, 0xAAAA);
  1740.  
  1741. EXTERN_API( OSErr )
  1742. AddEmptyTrackToMovie            (Track                     srcTrack,
  1743.                                  Movie                     dstMovie,
  1744.                                  Handle                 dataRef,
  1745.                                  OSType                 dataRefType,
  1746.                                  Track *                dstTrack)                            TWOWORDINLINE(0x7074, 0xAAAA);
  1747.  
  1748. /*************************
  1749. * movie & track edit state routines
  1750. **************************/
  1751. EXTERN_API( MovieEditState )
  1752. NewMovieEditState                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0104, 0xAAAA);
  1753.  
  1754. EXTERN_API( OSErr )
  1755. UseMovieEditState                (Movie                     theMovie,
  1756.                                  MovieEditState         toState)                            THREEWORDINLINE(0x303C, 0x0105, 0xAAAA);
  1757.  
  1758. EXTERN_API( OSErr )
  1759. DisposeMovieEditState            (MovieEditState         state)                                THREEWORDINLINE(0x303C, 0x0106, 0xAAAA);
  1760.  
  1761. EXTERN_API( TrackEditState )
  1762. NewTrackEditState                (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0107, 0xAAAA);
  1763.  
  1764. EXTERN_API( OSErr )
  1765. UseTrackEditState                (Track                     theTrack,
  1766.                                  TrackEditState         state)                                THREEWORDINLINE(0x303C, 0x0108, 0xAAAA);
  1767.  
  1768. EXTERN_API( OSErr )
  1769. DisposeTrackEditState            (TrackEditState         state)                                THREEWORDINLINE(0x303C, 0x0109, 0xAAAA);
  1770.  
  1771. /*************************
  1772. * track reference routines
  1773. **************************/
  1774. EXTERN_API( OSErr )
  1775. AddTrackReference                (Track                     theTrack,
  1776.                                  Track                     refTrack,
  1777.                                  OSType                 refType,
  1778.                                  long *                    addedIndex)                            THREEWORDINLINE(0x303C, 0x01F0, 0xAAAA);
  1779.  
  1780. EXTERN_API( OSErr )
  1781. DeleteTrackReference            (Track                     theTrack,
  1782.                                  OSType                 refType,
  1783.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F1, 0xAAAA);
  1784.  
  1785. EXTERN_API( OSErr )
  1786. SetTrackReference                (Track                     theTrack,
  1787.                                  Track                     refTrack,
  1788.                                  OSType                 refType,
  1789.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F2, 0xAAAA);
  1790.  
  1791. EXTERN_API( Track )
  1792. GetTrackReference                (Track                     theTrack,
  1793.                                  OSType                 refType,
  1794.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F3, 0xAAAA);
  1795.  
  1796. EXTERN_API( OSType )
  1797. GetNextTrackReferenceType        (Track                     theTrack,
  1798.                                  OSType                 refType)                            THREEWORDINLINE(0x303C, 0x01F4, 0xAAAA);
  1799.  
  1800. EXTERN_API( long )
  1801. GetTrackReferenceCount            (Track                     theTrack,
  1802.                                  OSType                 refType)                            THREEWORDINLINE(0x303C, 0x01F5, 0xAAAA);
  1803.  
  1804.  
  1805. /*************************
  1806. * high level file conversion routines
  1807. **************************/
  1808. EXTERN_API( OSErr )
  1809. ConvertFileToMovieFile            (const FSSpec *            inputFile,
  1810.                                  const FSSpec *            outputFile,
  1811.                                  OSType                 creator,
  1812.                                  ScriptCode             scriptTag,
  1813.                                  short *                resID,
  1814.                                  long                     flags,
  1815.                                  ComponentInstance         userComp,
  1816.                                  MovieProgressUPP         proc,
  1817.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x01CB, 0xAAAA);
  1818.  
  1819. EXTERN_API( OSErr )
  1820. ConvertMovieToFile                (Movie                     theMovie,
  1821.                                  Track                     onlyTrack,
  1822.                                  FSSpec *                outputFile,
  1823.                                  OSType                 fileType,
  1824.                                  OSType                 creator,
  1825.                                  ScriptCode             scriptTag,
  1826.                                  short *                resID,
  1827.                                  long                     flags,
  1828.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x01CC, 0xAAAA);
  1829.  
  1830.  
  1831. enum {
  1832.     kGetMovieImporterValidateToFind = 1L << 0,
  1833.     kGetMovieImporterAllowNewFile = 1L << 1,
  1834.     kGetMovieImporterDontConsiderGraphicsImporters = 1L << 2
  1835. };
  1836.  
  1837. EXTERN_API( OSErr )
  1838. GetMovieImporterForDataRef        (OSType                 dataRefType,
  1839.                                  Handle                 dataRef,
  1840.                                  long                     flags,
  1841.                                  Component *            importer)                            THREEWORDINLINE(0x303C, 0x02C7, 0xAAAA);
  1842.  
  1843. /*************************
  1844. * Movie Timebase Conversion Routines
  1845. **************************/
  1846. EXTERN_API( TimeValue )
  1847. TrackTimeToMediaTime            (TimeValue                 value,
  1848.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0096, 0xAAAA);
  1849.  
  1850. EXTERN_API( Fixed )
  1851. GetTrackEditRate                (Track                     theTrack,
  1852.                                  TimeValue                 atTime)                                THREEWORDINLINE(0x303C, 0x0123, 0xAAAA);
  1853.  
  1854.  
  1855. /*************************
  1856. * Miscellaneous Routines
  1857. **************************/
  1858.  
  1859. EXTERN_API( long )
  1860. GetMovieDataSize                (Movie                     theMovie,
  1861.                                  TimeValue                 startTime,
  1862.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0098, 0xAAAA);
  1863.  
  1864. EXTERN_API( long )
  1865. GetTrackDataSize                (Track                     theTrack,
  1866.                                  TimeValue                 startTime,
  1867.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0149, 0xAAAA);
  1868.  
  1869. EXTERN_API( long )
  1870. GetMediaDataSize                (Media                     theMedia,
  1871.                                  TimeValue                 startTime,
  1872.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0099, 0xAAAA);
  1873.  
  1874. EXTERN_API( Boolean )
  1875. PtInMovie                        (Movie                     theMovie,
  1876.                                  Point                     pt)                                    THREEWORDINLINE(0x303C, 0x009A, 0xAAAA);
  1877.  
  1878. EXTERN_API( Boolean )
  1879. PtInTrack                        (Track                     theTrack,
  1880.                                  Point                     pt)                                    THREEWORDINLINE(0x303C, 0x009B, 0xAAAA);
  1881.  
  1882.  
  1883. /*************************
  1884. * Group Selection Routines
  1885. **************************/
  1886.  
  1887. EXTERN_API( void )
  1888. SetMovieLanguage                (Movie                     theMovie,
  1889.                                  long                     language)                            THREEWORDINLINE(0x303C, 0x009C, 0xAAAA);
  1890.  
  1891.  
  1892. /*************************
  1893. * User Data
  1894. **************************/
  1895.  
  1896. EXTERN_API( OSErr )
  1897. GetUserData                        (UserData                 theUserData,
  1898.                                  Handle                 data,
  1899.                                  OSType                 udType,
  1900.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x009E, 0xAAAA);
  1901.  
  1902. EXTERN_API( OSErr )
  1903. AddUserData                        (UserData                 theUserData,
  1904.                                  Handle                 data,
  1905.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x009F, 0xAAAA);
  1906.  
  1907. EXTERN_API( OSErr )
  1908. RemoveUserData                    (UserData                 theUserData,
  1909.                                  OSType                 udType,
  1910.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x00A0, 0xAAAA);
  1911.  
  1912. EXTERN_API( short )
  1913. CountUserDataType                (UserData                 theUserData,
  1914.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x014B, 0xAAAA);
  1915.  
  1916. EXTERN_API( long )
  1917. GetNextUserDataType                (UserData                 theUserData,
  1918.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x01A5, 0xAAAA);
  1919.  
  1920. EXTERN_API( OSErr )
  1921. GetUserDataItem                    (UserData                 theUserData,
  1922.                                  void *                    data,
  1923.                                  long                     size,
  1924.                                  OSType                 udType,
  1925.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x0126, 0xAAAA);
  1926.  
  1927. EXTERN_API( OSErr )
  1928. SetUserDataItem                    (UserData                 theUserData,
  1929.                                  void *                    data,
  1930.                                  long                     size,
  1931.                                  OSType                 udType,
  1932.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x012E, 0xAAAA);
  1933.  
  1934. EXTERN_API( OSErr )
  1935. AddUserDataText                    (UserData                 theUserData,
  1936.                                  Handle                 data,
  1937.                                  OSType                 udType,
  1938.                                  long                     index,
  1939.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014C, 0xAAAA);
  1940.  
  1941. EXTERN_API( OSErr )
  1942. GetUserDataText                    (UserData                 theUserData,
  1943.                                  Handle                 data,
  1944.                                  OSType                 udType,
  1945.                                  long                     index,
  1946.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014D, 0xAAAA);
  1947.  
  1948. EXTERN_API( OSErr )
  1949. RemoveUserDataText                (UserData                 theUserData,
  1950.                                  OSType                 udType,
  1951.                                  long                     index,
  1952.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014E, 0xAAAA);
  1953.  
  1954. EXTERN_API( OSErr )
  1955. NewUserData                        (UserData *                theUserData)                        THREEWORDINLINE(0x303C, 0x012F, 0xAAAA);
  1956.  
  1957. EXTERN_API( OSErr )
  1958. DisposeUserData                    (UserData                 theUserData)                        THREEWORDINLINE(0x303C, 0x0130, 0xAAAA);
  1959.  
  1960. EXTERN_API( OSErr )
  1961. NewUserDataFromHandle            (Handle                 h,
  1962.                                  UserData *                theUserData)                        THREEWORDINLINE(0x303C, 0x0131, 0xAAAA);
  1963.  
  1964. EXTERN_API( OSErr )
  1965. PutUserDataIntoHandle            (UserData                 theUserData,
  1966.                                  Handle                 h)                                    THREEWORDINLINE(0x303C, 0x0132, 0xAAAA);
  1967.  
  1968. EXTERN_API( void )
  1969. GetMediaNextInterestingTime        (Media                     theMedia,
  1970.                                  short                     interestingTimeFlags,
  1971.                                  TimeValue                 time,
  1972.                                  Fixed                     rate,
  1973.                                  TimeValue *            interestingTime,
  1974.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x016D, 0xAAAA);
  1975.  
  1976. EXTERN_API( void )
  1977. GetTrackNextInterestingTime        (Track                     theTrack,
  1978.                                  short                     interestingTimeFlags,
  1979.                                  TimeValue                 time,
  1980.                                  Fixed                     rate,
  1981.                                  TimeValue *            interestingTime,
  1982.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x00E2, 0xAAAA);
  1983.  
  1984. EXTERN_API( void )
  1985. GetMovieNextInterestingTime        (Movie                     theMovie,
  1986.                                  short                     interestingTimeFlags,
  1987.                                  short                     numMediaTypes,
  1988.                                  const OSType *            whichMediaTypes,
  1989.                                  TimeValue                 time,
  1990.                                  Fixed                     rate,
  1991.                                  TimeValue *            interestingTime,
  1992.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x010E, 0xAAAA);
  1993.  
  1994.  
  1995. EXTERN_API( OSErr )
  1996. CreateMovieFile                    (const FSSpec *            fileSpec,
  1997.                                  OSType                 creator,
  1998.                                  ScriptCode             scriptTag,
  1999.                                  long                     createMovieFileFlags,
  2000.                                  short *                resRefNum,
  2001.                                  Movie *                newmovie)                            THREEWORDINLINE(0x303C, 0x0191, 0xAAAA);
  2002.  
  2003. EXTERN_API( OSErr )
  2004. OpenMovieFile                    (const FSSpec *            fileSpec,
  2005.                                  short *                resRefNum,
  2006.                                  SInt8                     permission)                            THREEWORDINLINE(0x303C, 0x0192, 0xAAAA);
  2007.  
  2008. EXTERN_API( OSErr )
  2009. CloseMovieFile                    (short                     resRefNum)                            THREEWORDINLINE(0x303C, 0x00D5, 0xAAAA);
  2010.  
  2011. EXTERN_API( OSErr )
  2012. DeleteMovieFile                    (const FSSpec *            fileSpec)                            THREEWORDINLINE(0x303C, 0x0175, 0xAAAA);
  2013.  
  2014. EXTERN_API( OSErr )
  2015. NewMovieFromFile                (Movie *                theMovie,
  2016.                                  short                     resRefNum,
  2017.                                  short *                resId,
  2018.                                  StringPtr                 resName,
  2019.                                  short                     newMovieFlags,
  2020.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x00F0, 0xAAAA);
  2021.  
  2022. EXTERN_API( OSErr )
  2023. NewMovieFromHandle                (Movie *                theMovie,
  2024.                                  Handle                 h,
  2025.                                  short                     newMovieFlags,
  2026.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x00F1, 0xAAAA);
  2027.  
  2028. EXTERN_API( OSErr )
  2029. NewMovieFromDataFork            (Movie *                theMovie,
  2030.                                  short                     fRefNum,
  2031.                                  long                     fileOffset,
  2032.                                  short                     newMovieFlags,
  2033.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x01B3, 0xAAAA);
  2034.  
  2035. EXTERN_API( OSErr )
  2036. NewMovieFromUserProc            (Movie *                m,
  2037.                                  short                     flags,
  2038.                                  Boolean *                dataRefWasChanged,
  2039.                                  GetMovieUPP             getProc,
  2040.                                  void *                    refCon,
  2041.                                  Handle                 defaultDataRef,
  2042.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01EC, 0xAAAA);
  2043.  
  2044. EXTERN_API( OSErr )
  2045. NewMovieFromDataRef                (Movie *                m,
  2046.                                  short                     flags,
  2047.                                  short *                id,
  2048.                                  Handle                 dataRef,
  2049.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0220, 0xAAAA);
  2050.  
  2051. EXTERN_API( OSErr )
  2052. AddMovieResource                (Movie                     theMovie,
  2053.                                  short                     resRefNum,
  2054.                                  short *                resId,
  2055.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x00D7, 0xAAAA);
  2056.  
  2057. EXTERN_API( OSErr )
  2058. UpdateMovieResource                (Movie                     theMovie,
  2059.                                  short                     resRefNum,
  2060.                                  short                     resId,
  2061.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x00D8, 0xAAAA);
  2062.  
  2063. EXTERN_API( OSErr )
  2064. RemoveMovieResource                (short                     resRefNum,
  2065.                                  short                     resId)                                THREEWORDINLINE(0x303C, 0x0176, 0xAAAA);
  2066.  
  2067. EXTERN_API( Boolean )
  2068. HasMovieChanged                    (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00D9, 0xAAAA);
  2069.  
  2070. EXTERN_API( void )
  2071. ClearMovieChanged                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0113, 0xAAAA);
  2072.  
  2073. EXTERN_API( OSErr )
  2074. SetMovieDefaultDataRef            (Movie                     theMovie,
  2075.                                  Handle                 dataRef,
  2076.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01C1, 0xAAAA);
  2077.  
  2078. EXTERN_API( OSErr )
  2079. GetMovieDefaultDataRef            (Movie                     theMovie,
  2080.                                  Handle *                dataRef,
  2081.                                  OSType *                dataRefType)                        THREEWORDINLINE(0x303C, 0x01D2, 0xAAAA);
  2082.  
  2083. EXTERN_API( OSErr )
  2084. SetMovieColorTable                (Movie                     theMovie,
  2085.                                  CTabHandle             ctab)                                THREEWORDINLINE(0x303C, 0x0205, 0xAAAA);
  2086.  
  2087. EXTERN_API( OSErr )
  2088. GetMovieColorTable                (Movie                     theMovie,
  2089.                                  CTabHandle *            ctab)                                THREEWORDINLINE(0x303C, 0x0206, 0xAAAA);
  2090.  
  2091. EXTERN_API( void )
  2092. FlattenMovie                    (Movie                     theMovie,
  2093.                                  long                     movieFlattenFlags,
  2094.                                  const FSSpec *            theFile,
  2095.                                  OSType                 creator,
  2096.                                  ScriptCode             scriptTag,
  2097.                                  long                     createMovieFileFlags,
  2098.                                  short *                resId,
  2099.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x019B, 0xAAAA);
  2100.  
  2101. EXTERN_API( Movie )
  2102. FlattenMovieData                (Movie                     theMovie,
  2103.                                  long                     movieFlattenFlags,
  2104.                                  const FSSpec *            theFile,
  2105.                                  OSType                 creator,
  2106.                                  ScriptCode             scriptTag,
  2107.                                  long                     createMovieFileFlags)                THREEWORDINLINE(0x303C, 0x019C, 0xAAAA);
  2108.  
  2109. EXTERN_API( void )
  2110. SetMovieProgressProc            (Movie                     theMovie,
  2111.                                  MovieProgressUPP         p,
  2112.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x019A, 0xAAAA);
  2113.  
  2114. EXTERN_API( OSErr )
  2115. MovieSearchText                    (Movie                     theMovie,
  2116.                                  Ptr                     text,
  2117.                                  long                     size,
  2118.                                  long                     searchFlags,
  2119.                                  Track *                searchTrack,
  2120.                                  TimeValue *            searchTime,
  2121.                                  long *                    searchOffset)                        THREEWORDINLINE(0x303C, 0x0207, 0xAAAA);
  2122.  
  2123. EXTERN_API( void )
  2124. GetPosterBox                    (Movie                     theMovie,
  2125.                                  Rect *                    boxRect)                            THREEWORDINLINE(0x303C, 0x016F, 0xAAAA);
  2126.  
  2127. EXTERN_API( void )
  2128. SetPosterBox                    (Movie                     theMovie,
  2129.                                  const Rect *            boxRect)                            THREEWORDINLINE(0x303C, 0x0170, 0xAAAA);
  2130.  
  2131. EXTERN_API( RgnHandle )
  2132. GetMovieSegmentDisplayBoundsRgn    (Movie                     theMovie,
  2133.                                  TimeValue                 time,
  2134.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x016C, 0xAAAA);
  2135.  
  2136. EXTERN_API( RgnHandle )
  2137. GetTrackSegmentDisplayBoundsRgn    (Track                     theTrack,
  2138.                                  TimeValue                 time,
  2139.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x016B, 0xAAAA);
  2140.  
  2141. EXTERN_API( void )
  2142. SetMovieCoverProcs                (Movie                     theMovie,
  2143.                                  MovieRgnCoverUPP         uncoverProc,
  2144.                                  MovieRgnCoverUPP         coverProc,
  2145.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x0179, 0xAAAA);
  2146.  
  2147. EXTERN_API( OSErr )
  2148. GetMovieCoverProcs                (Movie                     theMovie,
  2149.                                  MovieRgnCoverUPP *        uncoverProc,
  2150.                                  MovieRgnCoverUPP *        coverProc,
  2151.                                  long *                    refcon)                                THREEWORDINLINE(0x303C, 0x01DD, 0xAAAA);
  2152.  
  2153. EXTERN_API( ComponentResult )
  2154. GetTrackStatus                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0172, 0xAAAA);
  2155.  
  2156. EXTERN_API( ComponentResult )
  2157. GetMovieStatus                    (Movie                     theMovie,
  2158.                                  Track *                firstProblemTrack)                    THREEWORDINLINE(0x303C, 0x0173, 0xAAAA);
  2159.  
  2160. /****
  2161.     Movie Controller support routines
  2162. ****/
  2163. EXTERN_API( ComponentInstance )
  2164. NewMovieController                (Movie                     theMovie,
  2165.                                  const Rect *            movieRect,
  2166.                                  long                     someFlags)                            THREEWORDINLINE(0x303C, 0x018A, 0xAAAA);
  2167.  
  2168. EXTERN_API( void )
  2169. DisposeMovieController            (ComponentInstance         mc)                                    THREEWORDINLINE(0x303C, 0x018B, 0xAAAA);
  2170.  
  2171. EXTERN_API( void )
  2172. ShowMovieInformation            (Movie                     theMovie,
  2173.                                  ModalFilterUPP         filterProc,
  2174.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x0209, 0xAAAA);
  2175.  
  2176.  
  2177. /*****
  2178.     Scrap routines
  2179. *****/
  2180. EXTERN_API( OSErr )
  2181. PutMovieOnScrap                    (Movie                     theMovie,
  2182.                                  long                     movieScrapFlags)                    THREEWORDINLINE(0x303C, 0x018C, 0xAAAA);
  2183.  
  2184. EXTERN_API( Movie )
  2185. NewMovieFromScrap                (long                     newMovieFlags)                        THREEWORDINLINE(0x303C, 0x018D, 0xAAAA);
  2186.  
  2187.  
  2188. /*****
  2189.     DataRef routines
  2190. *****/
  2191.  
  2192. EXTERN_API( OSErr )
  2193. GetMediaDataRef                    (Media                     theMedia,
  2194.                                  short                     index,
  2195.                                  Handle *                dataRef,
  2196.                                  OSType *                dataRefType,
  2197.                                  long *                    dataRefAttributes)                    THREEWORDINLINE(0x303C, 0x0197, 0xAAAA);
  2198.  
  2199. EXTERN_API( OSErr )
  2200. SetMediaDataRef                    (Media                     theMedia,
  2201.                                  short                     index,
  2202.                                  Handle                 dataRef,
  2203.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01C9, 0xAAAA);
  2204.  
  2205. EXTERN_API( OSErr )
  2206. SetMediaDataRefAttributes        (Media                     theMedia,
  2207.                                  short                     index,
  2208.                                  long                     dataRefAttributes)                    THREEWORDINLINE(0x303C, 0x01CA, 0xAAAA);
  2209.  
  2210. EXTERN_API( OSErr )
  2211. AddMediaDataRef                    (Media                     theMedia,
  2212.                                  short *                index,
  2213.                                  Handle                 dataRef,
  2214.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0198, 0xAAAA);
  2215.  
  2216. EXTERN_API( OSErr )
  2217. GetMediaDataRefCount            (Media                     theMedia,
  2218.                                  short *                count)                                THREEWORDINLINE(0x303C, 0x0199, 0xAAAA);
  2219.  
  2220. EXTERN_API( OSErr )
  2221. QTNewAlias                        (const FSSpec *            fss,
  2222.                                  AliasHandle *            alias,
  2223.                                  Boolean                 minimal)                            THREEWORDINLINE(0x303C, 0x0201, 0xAAAA);
  2224.  
  2225. /*****
  2226.     Playback hint routines
  2227. *****/
  2228. EXTERN_API( void )
  2229. SetMoviePlayHints                (Movie                     theMovie,
  2230.                                  long                     flags,
  2231.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x01A1, 0xAAAA);
  2232.  
  2233. EXTERN_API( void )
  2234. SetMediaPlayHints                (Media                     theMedia,
  2235.                                  long                     flags,
  2236.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x01A2, 0xAAAA);
  2237.  
  2238. EXTERN_API( void )
  2239. GetMediaPlayHints                (Media                     theMedia,
  2240.                                  long *                    flags)                                THREEWORDINLINE(0x303C, 0x02CE, 0xAAAA);
  2241.  
  2242. /*****
  2243.     Load time track hints
  2244. *****/
  2245.  
  2246. enum {
  2247.     preloadAlways                = 1L << 0,
  2248.     preloadOnlyIfEnabled        = 1L << 1
  2249. };
  2250.  
  2251. EXTERN_API( void )
  2252. SetTrackLoadSettings            (Track                     theTrack,
  2253.                                  TimeValue                 preloadTime,
  2254.                                  TimeValue                 preloadDuration,
  2255.                                  long                     preloadFlags,
  2256.                                  long                     defaultHints)                        THREEWORDINLINE(0x303C, 0x01E3, 0xAAAA);
  2257.  
  2258. EXTERN_API( void )
  2259. GetTrackLoadSettings            (Track                     theTrack,
  2260.                                  TimeValue *            preloadTime,
  2261.                                  TimeValue *            preloadDuration,
  2262.                                  long *                    preloadFlags,
  2263.                                  long *                    defaultHints)                        THREEWORDINLINE(0x303C, 0x01E4, 0xAAAA);
  2264.  
  2265. /*****
  2266.     Big screen TV
  2267. *****/
  2268.  
  2269. enum {
  2270.     fullScreenHideCursor        = 1L << 0,
  2271.     fullScreenAllowEvents        = 1L << 1,
  2272.     fullScreenDontChangeMenuBar    = 1L << 2,
  2273.     fullScreenPreflightSize        = 1L << 3
  2274. };
  2275.  
  2276. EXTERN_API( OSErr )
  2277. BeginFullScreen                    (Ptr *                    restoreState,
  2278.                                  GDHandle                 whichGD,
  2279.                                  short *                desiredWidth,
  2280.                                  short *                desiredHeight,
  2281.                                  WindowPtr *            newWindow,
  2282.                                  RGBColor *                eraseColor,
  2283.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0233, 0xAAAA);
  2284.  
  2285. EXTERN_API( OSErr )
  2286. EndFullScreen                    (Ptr                     fullState,
  2287.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0234, 0xAAAA);
  2288.  
  2289. /*****
  2290.     Sprite Toolbox
  2291. *****/
  2292.  
  2293. enum {
  2294.     kBackgroundSpriteLayerNum    = 32767
  2295. };
  2296.  
  2297. /*  Sprite Properties*/
  2298.  
  2299. enum {
  2300.     kSpritePropertyMatrix        = 1,
  2301.     kSpritePropertyImageDescription = 2,
  2302.     kSpritePropertyImageDataPtr    = 3,
  2303.     kSpritePropertyVisible        = 4,
  2304.     kSpritePropertyLayer        = 5,
  2305.     kSpritePropertyGraphicsMode    = 6,
  2306.     kSpritePropertyImageDataSize = 7,
  2307.     kSpritePropertyImageIndex    = 100,
  2308.     kSpriteTrackPropertyBackgroundColor = 101,
  2309.     kSpriteTrackPropertyOffscreenBitDepth = 102,
  2310.     kSpriteTrackPropertySampleFormat = 103,
  2311.     kSpriteTrackPropertyScaleSpritesToScaleWorld = 104,
  2312.     kSpriteTrackPropertyHasActions = 105,
  2313.     kSpriteTrackPropertyVisible    = 106,
  2314.     kSpriteTrackPropertyQTIdleEventsFrequency = 107,
  2315.     kSpriteImagePropertyRegistrationPoint = 1000,
  2316.     kSpriteImagePropertyGroupID    = 1001
  2317. };
  2318.  
  2319. /* special value for kSpriteTrackPropertyQTIdleEventsFrequency (the default)*/
  2320.  
  2321. enum {
  2322.     kNoQTIdleEvents                = -1
  2323. };
  2324.  
  2325. /* flagsIn for SpriteWorldIdle*/
  2326.  
  2327. enum {
  2328.     kOnlyDrawToSpriteWorld        = 1L << 0,
  2329.     kSpriteWorldPreflight        = 1L << 1
  2330. };
  2331.  
  2332. /* flagsOut for SpriteWorldIdle*/
  2333.  
  2334. enum {
  2335.     kSpriteWorldDidDraw            = 1L << 0,
  2336.     kSpriteWorldNeedsToDraw        = 1L << 1
  2337. };
  2338.  
  2339. /* flags for sprite track sample format*/
  2340.  
  2341. enum {
  2342.     kKeyFrameAndSingleOverride    = 1L << 1,
  2343.     kKeyFrameAndAllOverrides    = 1L << 2
  2344. };
  2345.  
  2346. /* sprite world flags*/
  2347.  
  2348. enum {
  2349.     kScaleSpritesToScaleWorld    = 1L << 1,
  2350.     kSpriteWorldHighQuality        = 1L << 2,
  2351.     kSpriteWorldDontAutoInvalidate = 1L << 3,
  2352.     kSpriteWorldInvisible        = 1L << 4
  2353. };
  2354.  
  2355. EXTERN_API( OSErr )
  2356. NewSpriteWorld                    (SpriteWorld *            newSpriteWorld,
  2357.                                  GWorldPtr                 destination,
  2358.                                  GWorldPtr                 spriteLayer,
  2359.                                  RGBColor *                backgroundColor,
  2360.                                  GWorldPtr                 background)                            THREEWORDINLINE(0x303C, 0x0239, 0xAAAA);
  2361.  
  2362. EXTERN_API( void )
  2363. DisposeSpriteWorld                (SpriteWorld             theSpriteWorld)                        THREEWORDINLINE(0x303C, 0x023A, 0xAAAA);
  2364.  
  2365. EXTERN_API( OSErr )
  2366. SetSpriteWorldClip                (SpriteWorld             theSpriteWorld,
  2367.                                  RgnHandle                 clipRgn)                            THREEWORDINLINE(0x303C, 0x023B, 0xAAAA);
  2368.  
  2369. EXTERN_API( OSErr )
  2370. SetSpriteWorldMatrix            (SpriteWorld             theSpriteWorld,
  2371.                                  const MatrixRecord *    matrix)                                THREEWORDINLINE(0x303C, 0x023C, 0xAAAA);
  2372.  
  2373. EXTERN_API( OSErr )
  2374. SetSpriteWorldGraphicsMode        (SpriteWorld             theSpriteWorld,
  2375.                                  long                     mode,
  2376.                                  const RGBColor *        opColor)                            THREEWORDINLINE(0x303C, 0x02D9, 0xAAAA);
  2377.  
  2378. EXTERN_API( OSErr )
  2379. SpriteWorldIdle                    (SpriteWorld             theSpriteWorld,
  2380.                                  long                     flagsIn,
  2381.                                  long *                    flagsOut)                            THREEWORDINLINE(0x303C, 0x023D, 0xAAAA);
  2382.  
  2383. EXTERN_API( OSErr )
  2384. InvalidateSpriteWorld            (SpriteWorld             theSpriteWorld,
  2385.                                  Rect *                    invalidArea)                        THREEWORDINLINE(0x303C, 0x023E, 0xAAAA);
  2386.  
  2387. EXTERN_API( OSErr )
  2388. SpriteWorldHitTest                (SpriteWorld             theSpriteWorld,
  2389.                                  long                     flags,
  2390.                                  Point                     loc,
  2391.                                  Sprite *                spriteHit)                            THREEWORDINLINE(0x303C, 0x0246, 0xAAAA);
  2392.  
  2393. EXTERN_API( OSErr )
  2394. SpriteHitTest                    (Sprite                 theSprite,
  2395.                                  long                     flags,
  2396.                                  Point                     loc,
  2397.                                  Boolean *                wasHit)                                THREEWORDINLINE(0x303C, 0x0247, 0xAAAA);
  2398.  
  2399. EXTERN_API( void )
  2400. DisposeAllSprites                (SpriteWorld             theSpriteWorld)                        THREEWORDINLINE(0x303C, 0x023F, 0xAAAA);
  2401.  
  2402. EXTERN_API( OSErr )
  2403. SetSpriteWorldFlags                (SpriteWorld             spriteWorld,
  2404.                                  long                     flags,
  2405.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x02C2, 0xAAAA);
  2406.  
  2407. EXTERN_API( OSErr )
  2408. NewSprite                        (Sprite *                newSprite,
  2409.                                  SpriteWorld             itsSpriteWorld,
  2410.                                  ImageDescriptionHandle  idh,
  2411.                                  Ptr                     imageDataPtr,
  2412.                                  MatrixRecord *            matrix,
  2413.                                  Boolean                 visible,
  2414.                                  short                     layer)                                THREEWORDINLINE(0x303C, 0x0240, 0xAAAA);
  2415.  
  2416. EXTERN_API( void )
  2417. DisposeSprite                    (Sprite                 theSprite)                            THREEWORDINLINE(0x303C, 0x0241, 0xAAAA);
  2418.  
  2419. EXTERN_API( void )
  2420. InvalidateSprite                (Sprite                 theSprite)                            THREEWORDINLINE(0x303C, 0x0242, 0xAAAA);
  2421.  
  2422. EXTERN_API( OSErr )
  2423. SetSpriteProperty                (Sprite                 theSprite,
  2424.                                  long                     propertyType,
  2425.                                  void *                    propertyValue)                        THREEWORDINLINE(0x303C, 0x0243, 0xAAAA);
  2426.  
  2427. EXTERN_API( OSErr )
  2428. GetSpriteProperty                (Sprite                 theSprite,
  2429.                                  long                     propertyType,
  2430.                                  void *                    propertyValue)                        THREEWORDINLINE(0x303C, 0x0244, 0xAAAA);
  2431.  
  2432. /*****
  2433.     QT Atom Data Support
  2434. *****/
  2435.  
  2436. enum {
  2437.     kParentAtomIsContainer        = 0
  2438. };
  2439.  
  2440. /* create and dispose QTAtomContainer objects*/
  2441.  
  2442. EXTERN_API( OSErr )
  2443. QTNewAtomContainer                (QTAtomContainer *        atomData)                            THREEWORDINLINE(0x303C, 0x020C, 0xAAAA);
  2444.  
  2445. EXTERN_API( OSErr )
  2446. QTDisposeAtomContainer            (QTAtomContainer         atomData)                            THREEWORDINLINE(0x303C, 0x020D, 0xAAAA);
  2447.  
  2448. /* locating nested atoms within QTAtomContainer container*/
  2449. EXTERN_API( QTAtomType )
  2450. QTGetNextChildType                (QTAtomContainer         container,
  2451.                                  QTAtom                 parentAtom,
  2452.                                  QTAtomType             currentChildType)                    THREEWORDINLINE(0x303C, 0x020E, 0xAAAA);
  2453.  
  2454. EXTERN_API( short )
  2455. QTCountChildrenOfType            (QTAtomContainer         container,
  2456.                                  QTAtom                 parentAtom,
  2457.                                  QTAtomType             childType)                            THREEWORDINLINE(0x303C, 0x020F, 0xAAAA);
  2458.  
  2459. EXTERN_API( QTAtom )
  2460. QTFindChildByIndex                (QTAtomContainer         container,
  2461.                                  QTAtom                 parentAtom,
  2462.                                  QTAtomType             atomType,
  2463.                                  short                     index,
  2464.                                  QTAtomID *                id)                                    THREEWORDINLINE(0x303C, 0x0210, 0xAAAA);
  2465.  
  2466. EXTERN_API( QTAtom )
  2467. QTFindChildByID                    (QTAtomContainer         container,
  2468.                                  QTAtom                 parentAtom,
  2469.                                  QTAtomType             atomType,
  2470.                                  QTAtomID                 id,
  2471.                                  short *                index)                                THREEWORDINLINE(0x303C, 0x021D, 0xAAAA);
  2472.  
  2473. EXTERN_API( OSErr )
  2474. QTNextChildAnyType                (QTAtomContainer         container,
  2475.                                  QTAtom                 parentAtom,
  2476.                                  QTAtom                 currentChild,
  2477.                                  QTAtom *                nextChild)                            THREEWORDINLINE(0x303C, 0x0200, 0xAAAA);
  2478.  
  2479. /* set a leaf atom's data*/
  2480. EXTERN_API( OSErr )
  2481. QTSetAtomData                    (QTAtomContainer         container,
  2482.                                  QTAtom                 atom,
  2483.                                  long                     dataSize,
  2484.                                  void *                    atomData)                            THREEWORDINLINE(0x303C, 0x0211, 0xAAAA);
  2485.  
  2486. /* extracting data*/
  2487. EXTERN_API( OSErr )
  2488. QTCopyAtomDataToHandle            (QTAtomContainer         container,
  2489.                                  QTAtom                 atom,
  2490.                                  Handle                 targetHandle)                        THREEWORDINLINE(0x303C, 0x0212, 0xAAAA);
  2491.  
  2492. EXTERN_API( OSErr )
  2493. QTCopyAtomDataToPtr                (QTAtomContainer         container,
  2494.                                  QTAtom                 atom,
  2495.                                  Boolean                 sizeOrLessOK,
  2496.                                  long                     size,
  2497.                                  void *                    targetPtr,
  2498.                                  long *                    actualSize)                            THREEWORDINLINE(0x303C, 0x0213, 0xAAAA);
  2499.  
  2500. EXTERN_API( OSErr )
  2501. QTGetAtomTypeAndID                (QTAtomContainer         container,
  2502.                                  QTAtom                 atom,
  2503.                                  QTAtomType *            atomType,
  2504.                                  QTAtomID *                id)                                    THREEWORDINLINE(0x303C, 0x0232, 0xAAAA);
  2505.  
  2506. /* extract a copy of an atom and all of it's children, caller disposes*/
  2507. EXTERN_API( OSErr )
  2508. QTCopyAtom                        (QTAtomContainer         container,
  2509.                                  QTAtom                 atom,
  2510.                                  QTAtomContainer *        targetContainer)                    THREEWORDINLINE(0x303C, 0x0214, 0xAAAA);
  2511.  
  2512. /* obtaining direct reference to atom data*/
  2513. EXTERN_API( OSErr )
  2514. QTLockContainer                    (QTAtomContainer         container)                            THREEWORDINLINE(0x303C, 0x0215, 0xAAAA);
  2515.  
  2516. EXTERN_API( OSErr )
  2517. QTGetAtomDataPtr                (QTAtomContainer         container,
  2518.                                  QTAtom                 atom,
  2519.                                  long *                    dataSize,
  2520.                                  Ptr *                    atomData)                            THREEWORDINLINE(0x303C, 0x0216, 0xAAAA);
  2521.  
  2522. EXTERN_API( OSErr )
  2523. QTUnlockContainer                (QTAtomContainer         container)                            THREEWORDINLINE(0x303C, 0x0217, 0xAAAA);
  2524.  
  2525. /*
  2526.    building QTAtomContainer trees
  2527.    creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
  2528.    used for Top-Down tree creation
  2529. */
  2530. EXTERN_API( OSErr )
  2531. QTInsertChild                    (QTAtomContainer         container,
  2532.                                  QTAtom                 parentAtom,
  2533.                                  QTAtomType             atomType,
  2534.                                  QTAtomID                 id,
  2535.                                  short                     index,
  2536.                                  long                     dataSize,
  2537.                                  void *                    data,
  2538.                                  QTAtom *                newAtom)                            THREEWORDINLINE(0x303C, 0x0218, 0xAAAA);
  2539.  
  2540. /* inserts children from childrenContainer as children of parentAtom*/
  2541. EXTERN_API( OSErr )
  2542. QTInsertChildren                (QTAtomContainer         container,
  2543.                                  QTAtom                 parentAtom,
  2544.                                  QTAtomContainer         childrenContainer)                    THREEWORDINLINE(0x303C, 0x0219, 0xAAAA);
  2545.  
  2546. /* destruction*/
  2547. EXTERN_API( OSErr )
  2548. QTRemoveAtom                    (QTAtomContainer         container,
  2549.                                  QTAtom                 atom)                                THREEWORDINLINE(0x303C, 0x021A, 0xAAAA);
  2550.  
  2551. EXTERN_API( OSErr )
  2552. QTRemoveChildren                (QTAtomContainer         container,
  2553.                                  QTAtom                 atom)                                THREEWORDINLINE(0x303C, 0x021B, 0xAAAA);
  2554.  
  2555. /* replacement must be same type as target*/
  2556. EXTERN_API( OSErr )
  2557. QTReplaceAtom                    (QTAtomContainer         targetContainer,
  2558.                                  QTAtom                 targetAtom,
  2559.                                  QTAtomContainer         replacementContainer,
  2560.                                  QTAtom                 replacementAtom)                    THREEWORDINLINE(0x303C, 0x021C, 0xAAAA);
  2561.  
  2562. EXTERN_API( OSErr )
  2563. QTSwapAtoms                        (QTAtomContainer         container,
  2564.                                  QTAtom                 atom1,
  2565.                                  QTAtom                 atom2)                                THREEWORDINLINE(0x303C, 0x01FF, 0xAAAA);
  2566.  
  2567. EXTERN_API( OSErr )
  2568. QTSetAtomID                        (QTAtomContainer         container,
  2569.                                  QTAtom                 atom,
  2570.                                  QTAtomID                 newID)                                THREEWORDINLINE(0x303C, 0x0231, 0xAAAA);
  2571.  
  2572. EXTERN_API( OSErr )
  2573. SetMediaPropertyAtom            (Media                     theMedia,
  2574.                                  QTAtomContainer         propertyAtom)                        THREEWORDINLINE(0x303C, 0x022E, 0xAAAA);
  2575.  
  2576. EXTERN_API( OSErr )
  2577. GetMediaPropertyAtom            (Media                     theMedia,
  2578.                                  QTAtomContainer *        propertyAtom)                        THREEWORDINLINE(0x303C, 0x022F, 0xAAAA);
  2579.  
  2580. /*****
  2581.     Tween Support
  2582. *****/
  2583. typedef struct TweenRecord                 TweenRecord;
  2584. typedef CALLBACK_API( ComponentResult , TweenerDataProcPtr )(TweenRecord *tr, void *tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, UniversalProcPtr transferProc, void *refCon);
  2585. typedef STACK_UPP_TYPE(TweenerDataProcPtr)                         TweenerDataUPP;
  2586.  
  2587. struct TweenRecord {
  2588.     long                             version;
  2589.  
  2590.     QTAtomContainer                 container;
  2591.     QTAtom                             tweenAtom;
  2592.     QTAtom                             dataAtom;
  2593.     Fixed                             percent;
  2594.  
  2595.     TweenerDataUPP                     dataProc;
  2596.  
  2597.     void *                            private1;
  2598.     void *                            private2;
  2599. };
  2600.  
  2601.  
  2602. struct TweenV1Record {
  2603.     long                             version;
  2604.  
  2605.     QTAtomContainer                 container;
  2606.     QTAtom                             tweenAtom;
  2607.     QTAtom                             dataAtom;
  2608.     Fixed                             percent;
  2609.  
  2610.     TweenerDataUPP                     dataProc;
  2611.  
  2612.     void *                            private1;
  2613.     void *                            private2;
  2614.  
  2615.     Fract                             fractPercent;
  2616. };
  2617. typedef struct TweenV1Record            TweenV1Record;
  2618. EXTERN_API( OSErr )
  2619. QTNewTween                        (QTTweener *            tween,
  2620.                                  QTAtomContainer         container,
  2621.                                  QTAtom                 tweenAtom,
  2622.                                  TimeValue                 maxTime)                            THREEWORDINLINE(0x303C, 0x029D, 0xAAAA);
  2623.  
  2624. EXTERN_API( OSErr )
  2625. QTDisposeTween                    (QTTweener                 tween)                                THREEWORDINLINE(0x303C, 0x029F, 0xAAAA);
  2626.  
  2627. EXTERN_API( OSErr )
  2628. QTDoTween                        (QTTweener                 tween,
  2629.                                  TimeValue                 atTime,
  2630.                                  Handle                 result,
  2631.                                  long *                    resultSize,
  2632.                                  TweenerDataUPP         tweenDataProc,
  2633.                                  void *                    tweenDataRefCon)                    THREEWORDINLINE(0x303C, 0x029E, 0xAAAA);
  2634.  
  2635. /*****
  2636.     Sound Description Manipulations
  2637. *****/
  2638. EXTERN_API( OSErr )
  2639. AddSoundDescriptionExtension    (SoundDescriptionHandle  desc,
  2640.                                  Handle                 extension,
  2641.                                  OSType                 idType)                                THREEWORDINLINE(0x303C, 0x02CF, 0xAAAA);
  2642.  
  2643. EXTERN_API( OSErr )
  2644. GetSoundDescriptionExtension    (SoundDescriptionHandle  desc,
  2645.                                  Handle *                extension,
  2646.                                  OSType                 idType)                                THREEWORDINLINE(0x303C, 0x02D0, 0xAAAA);
  2647.  
  2648. EXTERN_API( OSErr )
  2649. RemoveSoundDescriptionExtension    (SoundDescriptionHandle  desc,
  2650.                                  OSType                 idType)                                THREEWORDINLINE(0x303C, 0x02D1, 0xAAAA);
  2651.  
  2652. /*****
  2653.     Preferences
  2654. *****/
  2655. EXTERN_API( OSErr )
  2656. GetQuickTimePreference            (OSType                 preferenceType,
  2657.                                  QTAtomContainer *        preferenceAtom)                        THREEWORDINLINE(0x303C, 0x02D4, 0xAAAA);
  2658.  
  2659. EXTERN_API( OSErr )
  2660. SetQuickTimePreference            (OSType                 preferenceType,
  2661.                                  QTAtomContainer         preferenceAtom)                        THREEWORDINLINE(0x303C, 0x02D5, 0xAAAA);
  2662.  
  2663. /*****
  2664.     Effects and dialog Support
  2665. *****/
  2666. /* atom types for entries in the effects list*/
  2667.  
  2668. enum {
  2669.     kEffectNameAtom                = FOUR_CHAR_CODE('name'),        /* name of effect */
  2670.     kEffectTypeAtom                = FOUR_CHAR_CODE('type'),        /* codec sub-type for effect */
  2671.     kEffectManufacturerAtom        = FOUR_CHAR_CODE('manu')        /* codec manufacturer for effect */
  2672. };
  2673.  
  2674.  
  2675. struct QTParamPreviewRecord {
  2676.     long                             sourceID;                    /* 1 based source identifier*/
  2677.     PicHandle                         sourcePicture;                /* picture for preview, must not dispose until dialog is disposed*/
  2678. };
  2679. typedef struct QTParamPreviewRecord        QTParamPreviewRecord;
  2680.  
  2681. typedef QTParamPreviewRecord *            QTParamPreviewPtr;
  2682.  
  2683. struct QTParamDialogEventRecord {
  2684.     EventRecord *                    theEvent;                    /* Event received by the dialog */
  2685.     DialogPtr                         whichDialog;                /* dialog that event was directed towards */
  2686.     short                             itemHit;                    /* dialog item which was hit */
  2687. };
  2688. typedef struct QTParamDialogEventRecord    QTParamDialogEventRecord;
  2689.  
  2690. typedef QTParamDialogEventRecord *        QTParamDialogEventPtr;
  2691.  
  2692. enum {
  2693.     pdActionConfirmDialog        = 1,                            /* no param*/
  2694.     pdActionSetAppleMenu        = 2,                            /* param is MenuHandle*/
  2695.     pdActionSetEditMenu            = 3,                            /* param is MenuHandle*/
  2696.     pdActionGetDialogValues        = 4,                            /* param is QTAtomContainer*/
  2697.     pdActionSetPreviewUserItem    = 5,                            /* param is long*/
  2698.     pdActionSetPreviewPicture    = 6,                            /* param is QTParamPreviewPtr;*/
  2699.     pdActionSetColorPickerEventProc = 7,                        /* param is UserEventUPP*/
  2700.     pdActionSetDialogTitle        = 8,                            /* param is StringPtr */
  2701.     pdActionGetSubPanelMenu        = 9,                            /* param is MenuHandle* */
  2702.     pdActionActivateSubPanel    = 10,                            /* param is long */
  2703.     pdActionConductStopAlert    = 11,                            /* param is StringPtr */
  2704.     pdActionModelessCallback    = 12                            /* param is QTParamDialogEventPtr */
  2705. };
  2706.  
  2707. typedef long                             QTParameterDialog;
  2708.  
  2709. enum {
  2710.     elOptionsIncludeNoneInList    = 0x00000001                    /* "None" effect is included in list */
  2711. };
  2712.  
  2713. typedef long                             QTEffectListOptions;
  2714.  
  2715. enum {
  2716.     pdOptionsCollectOneValue    = 0x00000001,                    /* should collect a single value only*/
  2717.     pdOptionsAllowOptionalInterpolations = 0x00000002,            /* non-novice interpolation options are shown */
  2718.     pdOptionsModalDialogBox        = 0x00000004                    /* dialog box should be modal */
  2719. };
  2720.  
  2721. typedef long                             QTParameterDialogOptions;
  2722.  
  2723. enum {
  2724.     effectIsRealtime            = 0                                /* effect can be rendered in real time */
  2725. };
  2726.  
  2727. EXTERN_API( OSErr )
  2728. QTGetEffectsList                (QTAtomContainer *        returnedList,
  2729.                                  long                     minSources,
  2730.                                  long                     maxSources,
  2731.                                  QTEffectListOptions     getOptions)                            THREEWORDINLINE(0x303C, 0x02C9, 0xAAAA);
  2732.  
  2733. EXTERN_API( OSErr )
  2734. QTCreateStandardParameterDialog    (QTAtomContainer         effectList,
  2735.                                  QTAtomContainer         parameters,
  2736.                                  QTParameterDialogOptions  dialogOptions,
  2737.                                  QTParameterDialog *    createdDialog)                        THREEWORDINLINE(0x303C, 0x02CA, 0xAAAA);
  2738.  
  2739. EXTERN_API( OSErr )
  2740. QTIsStandardParameterDialogEvent (EventRecord *            pEvent,
  2741.                                  QTParameterDialog         createdDialog)                        THREEWORDINLINE(0x303C, 0x02CB, 0xAAAA);
  2742.  
  2743. EXTERN_API( OSErr )
  2744. QTDismissStandardParameterDialog (QTParameterDialog     createdDialog)                        THREEWORDINLINE(0x303C, 0x02CC, 0xAAAA);
  2745.  
  2746. EXTERN_API( OSErr )
  2747. QTStandardParameterDialogDoAction (QTParameterDialog     createdDialog,
  2748.                                  long                     action,
  2749.                                  void *                    params)                                THREEWORDINLINE(0x303C, 0x02CD, 0xAAAA);
  2750.  
  2751. EXTERN_API( OSErr )
  2752. QTGetEffectSpeed                (QTAtomContainer         parameters,
  2753.                                  Fixed *                pFPS)                                THREEWORDINLINE(0x303C, 0x02D2, 0xAAAA);
  2754.  
  2755. /*****
  2756.     Access Keys
  2757. *****/
  2758.  
  2759. enum {
  2760.     kAccessKeyAtomType            = FOUR_CHAR_CODE('acky')
  2761. };
  2762.  
  2763.  
  2764. enum {
  2765.     kAccessKeySystemFlag        = 1L << 0
  2766. };
  2767.  
  2768. EXTERN_API( OSErr )
  2769. QTGetAccessKeys                    (Str255                 accessKeyType,
  2770.                                  long                     flags,
  2771.                                  QTAtomContainer *        keys)                                THREEWORDINLINE(0x303C, 0x02B3, 0xAAAA);
  2772.  
  2773. EXTERN_API( OSErr )
  2774. QTRegisterAccessKey                (Str255                 accessKeyType,
  2775.                                  long                     flags,
  2776.                                  Handle                 accessKey)                            THREEWORDINLINE(0x303C, 0x02B4, 0xAAAA);
  2777.  
  2778. EXTERN_API( OSErr )
  2779. QTUnregisterAccessKey            (Str255                 accessKeyType,
  2780.                                  long                     flags,
  2781.                                  Handle                 accessKey)                            THREEWORDINLINE(0x303C, 0x02B5, 0xAAAA);
  2782.  
  2783. /*****
  2784.     Time table
  2785. *****/
  2786. EXTERN_API( OSErr )
  2787. MakeTrackTimeTable                (Track                     trackH,
  2788.                                  long **                offsets,
  2789.                                  TimeValue                 startTime,
  2790.                                  TimeValue                 endTime,
  2791.                                  TimeValue                 timeIncrement,
  2792.                                  short                     firstDataRefIndex,
  2793.                                  short                     lastDataRefIndex,
  2794.                                  long *                    retdataRefSkew)                        THREEWORDINLINE(0x303C, 0x02BE, 0xAAAA);
  2795.  
  2796. EXTERN_API( OSErr )
  2797. MakeMediaTimeTable                (Media                     theMedia,
  2798.                                  long **                offsets,
  2799.                                  TimeValue                 startTime,
  2800.                                  TimeValue                 endTime,
  2801.                                  TimeValue                 timeIncrement,
  2802.                                  short                     firstDataRefIndex,
  2803.                                  short                     lastDataRefIndex,
  2804.                                  long *                    retdataRefSkew)                        THREEWORDINLINE(0x303C, 0x02BF, 0xAAAA);
  2805.  
  2806. EXTERN_API( OSErr )
  2807. GetMaxLoadedTimeInMovie            (Movie                     theMovie,
  2808.                                  TimeValue *            time)                                THREEWORDINLINE(0x303C, 0x02C0, 0xAAAA);
  2809.  
  2810. EXTERN_API( OSErr )
  2811. QTMovieNeedsTimeTable            (Movie                     theMovie,
  2812.                                  Boolean *                needsTimeTable)                        THREEWORDINLINE(0x303C, 0x02C3, 0xAAAA);
  2813.  
  2814. EXTERN_API( OSErr )
  2815. QTGetDataRefMaxFileOffset        (Movie                     movieH,
  2816.                                  OSType                 dataRefType,
  2817.                                  Handle                 dataRef,
  2818.                                  long *                    offset)                                THREEWORDINLINE(0x303C, 0x02C6, 0xAAAA);
  2819.  
  2820.  
  2821.  
  2822. /*****
  2823.     QT International Text Atom Support
  2824. *****/
  2825.  
  2826. enum {
  2827.     kITextRemoveEverythingBut    = 0 << 1,
  2828.     kITextRemoveLeaveSuggestedAlternate = 1 << 1
  2829. };
  2830.  
  2831.  
  2832. enum {
  2833.     kITextAtomType                = FOUR_CHAR_CODE('itxt'),
  2834.     kITextStringAtomType        = FOUR_CHAR_CODE('text')
  2835. };
  2836.  
  2837. EXTERN_API( OSErr )
  2838. ITextAddString                    (QTAtomContainer         container,
  2839.                                  QTAtom                 parentAtom,
  2840.                                  RegionCode             theRegionCode,
  2841.                                  ConstStr255Param         theString)                            THREEWORDINLINE(0x303C, 0x027A, 0xAAAA);
  2842.  
  2843. EXTERN_API( OSErr )
  2844. ITextRemoveString                (QTAtomContainer         container,
  2845.                                  QTAtom                 parentAtom,
  2846.                                  RegionCode             theRegionCode,
  2847.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x027B, 0xAAAA);
  2848.  
  2849. EXTERN_API( OSErr )
  2850. ITextGetString                    (QTAtomContainer         container,
  2851.                                  QTAtom                 parentAtom,
  2852.                                  RegionCode             requestedRegion,
  2853.                                  RegionCode *            foundRegion,
  2854.                                  StringPtr                 theString)                            THREEWORDINLINE(0x303C, 0x027C, 0xAAAA);
  2855.  
  2856. EXTERN_API( OSErr )
  2857. QTTextToNativeText                (Handle                 theText,
  2858.                                  long                     encoding,
  2859.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x02DB, 0xAAAA);
  2860.  
  2861. /*************************
  2862. * track reference types
  2863. **************************/
  2864.  
  2865. enum {
  2866.     kTrackReferenceChapterList    = FOUR_CHAR_CODE('chap'),
  2867.     kTrackReferenceTimeCode        = FOUR_CHAR_CODE('tmcd'),
  2868.     kTrackReferenceModifier        = FOUR_CHAR_CODE('ssrc')
  2869. };
  2870.  
  2871. /*************************
  2872. * modifier track types
  2873. **************************/
  2874.  
  2875. enum {
  2876.     kTrackModifierInput            = 0x696E,                        /* is really 'in'*/
  2877.     kTrackModifierType            = 0x7479,                        /* is really 'ty'*/
  2878.     kTrackModifierReference        = FOUR_CHAR_CODE('ssrc'),
  2879.     kTrackModifierObjectID        = FOUR_CHAR_CODE('obid'),
  2880.     kTrackModifierInputName        = FOUR_CHAR_CODE('name')
  2881. };
  2882.  
  2883.  
  2884. enum {
  2885.     kInputMapSubInputID            = FOUR_CHAR_CODE('subi')
  2886. };
  2887.  
  2888.  
  2889. enum {
  2890.     kTrackModifierTypeMatrix    = 1,
  2891.     kTrackModifierTypeClip        = 2,
  2892.     kTrackModifierTypeGraphicsMode = 5,
  2893.     kTrackModifierTypeVolume    = 3,
  2894.     kTrackModifierTypeBalance    = 4,
  2895.     kTrackModifierTypeImage        = FOUR_CHAR_CODE('vide'),        /* was kTrackModifierTypeSpriteImage*/
  2896.     kTrackModifierObjectMatrix    = 6,
  2897.     kTrackModifierObjectGraphicsMode = 7,
  2898.     kTrackModifierType3d4x4Matrix = 8,
  2899.     kTrackModifierCameraData    = 9,
  2900.     kTrackModifierSoundLocalizationData = 10,
  2901.     kTrackModifierObjectImageIndex = 11,
  2902.     kTrackModifierObjectLayer    = 12,
  2903.     kTrackModifierObjectVisible    = 13,
  2904.     kTrackModifierPanAngle        = FOUR_CHAR_CODE('pan '),
  2905.     kTrackModifierTiltAngle        = FOUR_CHAR_CODE('tilt'),
  2906.     kTrackModifierVerticalFieldOfViewAngle = FOUR_CHAR_CODE('fov '),
  2907.     kTrackModifierObjectQTEventSend = FOUR_CHAR_CODE('evnt')
  2908. };
  2909.  
  2910.  
  2911. struct ModifierTrackGraphicsModeRecord {
  2912.     long                             graphicsMode;
  2913.     RGBColor                         opColor;
  2914. };
  2915. typedef struct ModifierTrackGraphicsModeRecord ModifierTrackGraphicsModeRecord;
  2916.  
  2917. /*************************
  2918. * tween track types
  2919. **************************/
  2920.  
  2921. enum {
  2922.     kTweenTypeShort                = 1,
  2923.     kTweenTypeLong                = 2,
  2924.     kTweenTypeFixed                = 3,
  2925.     kTweenTypePoint                = 4,
  2926.     kTweenTypeQDRect            = 5,
  2927.     kTweenTypeQDRegion            = 6,
  2928.     kTweenTypeMatrix            = 7,
  2929.     kTweenTypeRGBColor            = 8,
  2930.     kTweenTypeGraphicsModeWithRGBColor = 9,
  2931.     kTweenTypeQTFloatSingle        = 10,
  2932.     kTweenTypeQTFloatDouble        = 11,
  2933.     kTweenTypeFixedPoint        = 12,
  2934.     kTweenType3dScale            = FOUR_CHAR_CODE('3sca'),
  2935.     kTweenType3dTranslate        = FOUR_CHAR_CODE('3tra'),
  2936.     kTweenType3dRotate            = FOUR_CHAR_CODE('3rot'),
  2937.     kTweenType3dRotateAboutPoint = FOUR_CHAR_CODE('3rap'),
  2938.     kTweenType3dRotateAboutAxis    = FOUR_CHAR_CODE('3rax'),
  2939.     kTweenType3dRotateAboutVector = FOUR_CHAR_CODE('3rvc'),
  2940.     kTweenType3dQuaternion        = FOUR_CHAR_CODE('3qua'),
  2941.     kTweenType3dMatrix            = FOUR_CHAR_CODE('3mat'),
  2942.     kTweenType3dCameraData        = FOUR_CHAR_CODE('3cam'),
  2943.     kTweenType3dSoundLocalizationData = FOUR_CHAR_CODE('3slc'),
  2944.     kTweenTypePathToMatrixTranslation = FOUR_CHAR_CODE('gxmt'),
  2945.     kTweenTypePathToMatrixRotation = FOUR_CHAR_CODE('gxpr'),
  2946.     kTweenTypePathToMatrixTranslationAndRotation = FOUR_CHAR_CODE('gxmr'),
  2947.     kTweenTypePathToFixedPoint    = FOUR_CHAR_CODE('gxfp'),
  2948.     kTweenTypePathXtoY            = FOUR_CHAR_CODE('gxxy'),
  2949.     kTweenTypePathYtoX            = FOUR_CHAR_CODE('gxyx'),
  2950.     kTweenTypeAtomList            = FOUR_CHAR_CODE('atom'),
  2951.     kTweenTypePolygon            = FOUR_CHAR_CODE('poly'),
  2952.     kTweenTypeMultiMatrix        = FOUR_CHAR_CODE('mulm'),
  2953.     kTweenTypeSpin                = FOUR_CHAR_CODE('spin'),
  2954.     kTweenType3dMatrixNonLinear    = FOUR_CHAR_CODE('3nlr'),
  2955.     kTweenType3dVRObject        = FOUR_CHAR_CODE('3vro')
  2956. };
  2957.  
  2958.  
  2959. enum {
  2960.     kTweenEntry                    = FOUR_CHAR_CODE('twen'),
  2961.     kTweenData                    = FOUR_CHAR_CODE('data'),
  2962.     kTweenType                    = FOUR_CHAR_CODE('twnt'),
  2963.     kTweenStartOffset            = FOUR_CHAR_CODE('twst'),
  2964.     kTweenDuration                = FOUR_CHAR_CODE('twdu'),
  2965.     kTweenFlags                    = FOUR_CHAR_CODE('flag'),
  2966.     kTweenOutputMin                = FOUR_CHAR_CODE('omin'),
  2967.     kTweenOutputMax                = FOUR_CHAR_CODE('omax'),
  2968.     kTweenSequenceElement        = FOUR_CHAR_CODE('seqe'),
  2969.     kTween3dInitialCondition    = FOUR_CHAR_CODE('icnd'),
  2970.     kTweenInterpolationID        = FOUR_CHAR_CODE('intr'),
  2971.     kTweenRegionData            = FOUR_CHAR_CODE('qdrg'),
  2972.     kTweenPictureData            = FOUR_CHAR_CODE('PICT'),
  2973.     kListElementType            = FOUR_CHAR_CODE('type'),
  2974.     kListElementDataType        = FOUR_CHAR_CODE('daty'),
  2975.     kNameAtom                    = FOUR_CHAR_CODE('name'),
  2976.     kInitialRotationAtom        = FOUR_CHAR_CODE('inro'),
  2977.     kNonLinearTweenHeader        = FOUR_CHAR_CODE('nlth')
  2978. };
  2979.  
  2980. /* kTweenFlags*/
  2981.  
  2982. enum {
  2983.     kTweenReturnDelta            = 1L << 0
  2984. };
  2985.  
  2986.  
  2987. struct TweenSequenceEntryRecord {
  2988.     Fixed                             endPercent;
  2989.     QTAtomID                         tweenAtomID;
  2990.     QTAtomID                         dataAtomID;
  2991. };
  2992. typedef struct TweenSequenceEntryRecord    TweenSequenceEntryRecord;
  2993.  
  2994. #ifdef __QD3D__
  2995.  
  2996. struct ThreeDeeVRObjectSample {
  2997.     long            rows;  
  2998.     long            columns;
  2999.     TQ3Matrix4x4      calib1;
  3000.     TQ3Matrix4x4      calib2;
  3001.     long            reserved1;
  3002.     long            reserved2;
  3003. };
  3004.  
  3005. typedef struct ThreeDeeVRObjectSample ThreeDeeVRObjectSample;
  3006.  
  3007. struct ThreeDeeNonLinearSample {
  3008.     float            DurFromLastSample;  // 0 to 1
  3009.     TQ3Matrix4x4      matrix;
  3010. };
  3011.  
  3012. typedef struct ThreeDeeNonLinearSample ThreeDeeNonLinearSample;
  3013.  
  3014. struct ThreeDeeNonLinearTweenHeaderAtom {
  3015.     long    number;
  3016.     long    dataSize;
  3017.     float    tensionFactor;  // default is 0
  3018.     long    reserved1;
  3019.     long    reserved2;
  3020. };
  3021.  
  3022. typedef struct ThreeDeeNonLinearTweenHeaderAtom ThreeDeeNonLinearTweenHeaderAtom;
  3023.  
  3024. #endif
  3025.  
  3026.  
  3027.  
  3028. #if OLDROUTINENAMES
  3029. #include <MediaHandlers.h>
  3030.  
  3031. /*************************
  3032. * Video Media routines
  3033. **************************/
  3034.  
  3035. #define GetVideoMediaGraphicsMode        MediaGetGraphicsMode
  3036. #define SetVideoMediaGraphicsMode        MediaSetGraphicsMode
  3037.  
  3038. // use these two routines at your own peril
  3039. #define ResetVideoMediaStatistics        VideoMediaResetStatistics
  3040. #define GetVideoMediaStatistics            VideoMediaGetStatistics
  3041.  
  3042. /*************************
  3043. * Sound Media routines
  3044. **************************/
  3045.  
  3046. #define GetSoundMediaBalance            MediaGetSoundBalance
  3047. #define SetSoundMediaBalance            MediaSetSoundBalance
  3048.  
  3049. /*************************
  3050. * Text Media routines
  3051. **************************/
  3052.  
  3053. #define SetTextProc            TextMediaSetTextProc
  3054. #define AddTextSample        TextMediaAddTextSample
  3055. #define AddTESample            TextMediaAddTESample
  3056. #define AddHiliteSample        TextMediaAddHiliteSample
  3057. #define FindNextText        TextMediaFindNextText
  3058. #define HiliteTextSample    TextMediaHiliteTextSample
  3059. #define SetTextSampleData    TextMediaSetTextSampleData
  3060.  
  3061. /*************************
  3062. * Sprite Media routines
  3063. **************************/
  3064.  
  3065. #define SetSpriteMediaSpriteProperty    SpriteMediaSetProperty
  3066. #define GetSpriteMediaSpriteProperty    SpriteMediaGetProperty
  3067. #define HitTestSpriteMedia                SpriteMediaHitTestSprites
  3068. #define CountSpriteMediaSprites            SpriteMediaCountSprites
  3069. #define CountSpriteMediaImages            SpriteMediaCountImages
  3070. #define GetSpriteMediaIndImageDescription    SpriteMediaGetIndImageDescription
  3071. #define GetDisplayedSampleNumber        SpriteMediaGetDisplayedSampleNumber
  3072. #endif /* OLDROUTINENAMES */
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079. /* they are for non-MacOS file manager*/
  3080.  
  3081. enum {
  3082.     pathTooLongErr                = -2110,
  3083.     emptyPathErr                = -2111,
  3084.     noPathMappingErr            = -2112,
  3085.     pathNotVerifiedErr            = -2113,
  3086.     unknownFormatErr            = -2114,
  3087.     wackBadFileErr                = -2115,
  3088.     wackForkNotFoundErr            = -2116,
  3089.     wackBadMetaDataErr            = -2117,
  3090.     qfcbNotFoundErr                = -2118,
  3091.     qfcbNotCreatedErr            = -2119,
  3092.     AAPNotCreatedErr            = -2120,
  3093.     AAPNotFoundErr                = -2121,
  3094.     ASDBadHeaderErr                = -2122,
  3095.     ASDBadForkErr                = -2123,
  3096.     ASDEntryNotFoundErr            = -2124
  3097. };
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103. /*************************
  3104. * Video Media routines
  3105. **************************/
  3106.  
  3107.  
  3108.  
  3109. enum {
  3110.     videoFlagDontLeanAhead        = 1L << 0
  3111. };
  3112.  
  3113.  
  3114.  
  3115.  
  3116. /* use these three routines at your own peril*/
  3117. EXTERN_API( ComponentResult )
  3118. VideoMediaResetStatistics        (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0105, 0x7000, 0xA82A);
  3119.  
  3120. EXTERN_API( ComponentResult )
  3121. VideoMediaGetStatistics            (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  3122.  
  3123.  
  3124. EXTERN_API( ComponentResult )
  3125. VideoMediaGetStallCount            (MediaHandler             mh,
  3126.                                  unsigned long *        stalls)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
  3127.  
  3128.  
  3129.  
  3130. /*************************
  3131. * Text Media routines
  3132. **************************/
  3133.  
  3134.  
  3135.  
  3136. /* Return displayFlags for TextProc */
  3137.  
  3138. enum {
  3139.     txtProcDefaultDisplay        = 0,                            /*    Use the media's default*/
  3140.     txtProcDontDisplay            = 1,                            /*    Don't display the text*/
  3141.     txtProcDoDisplay            = 2                                /*    Do display the text*/
  3142. };
  3143.  
  3144. EXTERN_API( ComponentResult )
  3145. TextMediaSetTextProc            (MediaHandler             mh,
  3146.                                  TextMediaUPP             TextProc,
  3147.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  3148.  
  3149. EXTERN_API( ComponentResult )
  3150. TextMediaAddTextSample            (MediaHandler             mh,
  3151.                                  Ptr                     text,
  3152.                                  unsigned long             size,
  3153.                                  short                     fontNumber,
  3154.                                  short                     fontSize,
  3155.                                  Style                     textFace,
  3156.                                  RGBColor *                textColor,
  3157.                                  RGBColor *                backColor,
  3158.                                  short                     textJustification,
  3159.                                  Rect *                    textBox,
  3160.                                  long                     displayFlags,
  3161.                                  TimeValue                 scrollDelay,
  3162.                                  short                     hiliteStart,
  3163.                                  short                     hiliteEnd,
  3164.                                  RGBColor *                rgbHiliteColor,
  3165.                                  TimeValue                 duration,
  3166.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0034, 0x0102, 0x7000, 0xA82A);
  3167.  
  3168. EXTERN_API( ComponentResult )
  3169. TextMediaAddTESample            (MediaHandler             mh,
  3170.                                  TEHandle                 hTE,
  3171.                                  RGBColor *                backColor,
  3172.                                  short                     textJustification,
  3173.                                  Rect *                    textBox,
  3174.                                  long                     displayFlags,
  3175.                                  TimeValue                 scrollDelay,
  3176.                                  short                     hiliteStart,
  3177.                                  short                     hiliteEnd,
  3178.                                  RGBColor *                rgbHiliteColor,
  3179.                                  TimeValue                 duration,
  3180.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0026, 0x0103, 0x7000, 0xA82A);
  3181.  
  3182. EXTERN_API( ComponentResult )
  3183. TextMediaAddHiliteSample        (MediaHandler             mh,
  3184.                                  short                     hiliteStart,
  3185.                                  short                     hiliteEnd,
  3186.                                  RGBColor *                rgbHiliteColor,
  3187.                                  TimeValue                 duration,
  3188.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
  3189.  
  3190.  
  3191. enum {
  3192.     findTextEdgeOK                = 1 << 0,                        /* Okay to find text at specified sample time*/
  3193.     findTextCaseSensitive        = 1 << 1,                        /* Case sensitive search*/
  3194.     findTextReverseSearch        = 1 << 2,                        /* Search from sampleTime backwards*/
  3195.     findTextWrapAround            = 1 << 3,                        /* Wrap search when beginning or end of movie is hit*/
  3196.     findTextUseOffset            = 1 << 4                        /* Begin search at the given character offset into sample rather than edge*/
  3197. };
  3198.  
  3199. EXTERN_API( ComponentResult )
  3200. TextMediaFindNextText            (MediaHandler             mh,
  3201.                                  Ptr                     text,
  3202.                                  long                     size,
  3203.                                  short                     findFlags,
  3204.                                  TimeValue                 startTime,
  3205.                                  TimeValue *            foundTime,
  3206.                                  TimeValue *            foundDuration,
  3207.                                  long *                    offset)                                FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  3208.  
  3209. EXTERN_API( ComponentResult )
  3210. TextMediaHiliteTextSample        (MediaHandler             mh,
  3211.                                  TimeValue                 sampleTime,
  3212.                                  short                     hiliteStart,
  3213.                                  short                     hiliteEnd,
  3214.                                  RGBColor *                rgbHiliteColor)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0106, 0x7000, 0xA82A);
  3215.  
  3216.  
  3217. enum {
  3218.     dropShadowOffsetType        = FOUR_CHAR_CODE('drpo'),
  3219.     dropShadowTranslucencyType    = FOUR_CHAR_CODE('drpt')
  3220. };
  3221.  
  3222. EXTERN_API( ComponentResult )
  3223. TextMediaSetTextSampleData        (MediaHandler             mh,
  3224.                                  void *                    data,
  3225.                                  OSType                 dataType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231. /*************************
  3232. * Sprite Media routines
  3233. **************************/
  3234. /* flags for sprite hit test routines */
  3235.  
  3236. enum {
  3237.     spriteHitTestBounds            = 1L << 0,                        /*    point must only be within sprite's bounding box*/
  3238.     spriteHitTestImage            = 1L << 1,                        /*  point must be within the shape of the sprite's image*/
  3239.     spriteHitTestInvisibleSprites = 1L << 2,                    /*  invisible sprites may be hit tested*/
  3240.     spriteHitTestIsClick        = 1L << 3,                        /*  for codecs that want mouse events*/
  3241.     spriteHitTestLocInDisplayCoordinates = 1L << 4                /*    set if you want to pass a display coordiate point to SpriteHitTest*/
  3242. };
  3243.  
  3244. /* atom types for sprite media */
  3245.  
  3246. enum {
  3247.     kSpriteAtomType                = FOUR_CHAR_CODE('sprt'),
  3248.     kSpriteImagesContainerAtomType = FOUR_CHAR_CODE('imct'),
  3249.     kSpriteImageAtomType        = FOUR_CHAR_CODE('imag'),
  3250.     kSpriteImageDataAtomType    = FOUR_CHAR_CODE('imda'),
  3251.     kSpriteImageGroupIDAtomType    = FOUR_CHAR_CODE('imgr'),
  3252.     kSpriteImageRegistrationAtomType = FOUR_CHAR_CODE('imrg'),
  3253.     kSpriteSharedDataAtomType    = FOUR_CHAR_CODE('dflt'),
  3254.     kSpriteNameAtomType            = FOUR_CHAR_CODE('name'),
  3255.     kSpriteImageNameAtomType    = FOUR_CHAR_CODE('name'),
  3256.     kSpriteUsesImageIDsAtomType    = FOUR_CHAR_CODE('uses')        /* leaf data is an array of QTAtomID's, one per image used*/
  3257. };
  3258.  
  3259. EXTERN_API( ComponentResult )
  3260. SpriteMediaSetProperty            (MediaHandler             mh,
  3261.                                  short                     spriteIndex,
  3262.                                  long                     propertyType,
  3263.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000A, 0x0101, 0x7000, 0xA82A);
  3264.  
  3265. EXTERN_API( ComponentResult )
  3266. SpriteMediaGetProperty            (MediaHandler             mh,
  3267.                                  short                     spriteIndex,
  3268.                                  long                     propertyType,
  3269.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000A, 0x0102, 0x7000, 0xA82A);
  3270.  
  3271. EXTERN_API( ComponentResult )
  3272. SpriteMediaHitTestSprites        (MediaHandler             mh,
  3273.                                  long                     flags,
  3274.                                  Point                     loc,
  3275.                                  short *                spriteHitIndex)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  3276.  
  3277. EXTERN_API( ComponentResult )
  3278. SpriteMediaCountSprites            (MediaHandler             mh,
  3279.                                  short *                numSprites)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  3280.  
  3281. EXTERN_API( ComponentResult )
  3282. SpriteMediaCountImages            (MediaHandler             mh,
  3283.                                  short *                numImages)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  3284.  
  3285. EXTERN_API( ComponentResult )
  3286. SpriteMediaGetIndImageDescription (MediaHandler         mh,
  3287.                                  short                     imageIndex,
  3288.                                  ImageDescriptionHandle  imageDescription)                    FIVEWORDINLINE(0x2F3C, 0x0006, 0x0106, 0x7000, 0xA82A);
  3289.  
  3290. EXTERN_API( ComponentResult )
  3291. SpriteMediaGetDisplayedSampleNumber (MediaHandler         mh,
  3292.                                  long *                    sampleNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  3293.  
  3294. EXTERN_API( ComponentResult )
  3295. SpriteMediaGetSpriteName        (MediaHandler             mh,
  3296.                                  QTAtomID                 spriteID,
  3297.                                  Str255                 spriteName)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  3298.  
  3299. EXTERN_API( ComponentResult )
  3300. SpriteMediaGetImageName            (MediaHandler             mh,
  3301.                                  short                     imageIndex,
  3302.                                  Str255                 imageName)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0109, 0x7000, 0xA82A);
  3303.  
  3304. EXTERN_API( ComponentResult )
  3305. SpriteMediaSetSpriteProperty    (MediaHandler             mh,
  3306.                                  QTAtomID                 spriteID,
  3307.                                  long                     propertyType,
  3308.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
  3309.  
  3310. EXTERN_API( ComponentResult )
  3311. SpriteMediaGetSpriteProperty    (MediaHandler             mh,
  3312.                                  QTAtomID                 spriteID,
  3313.                                  long                     propertyType,
  3314.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010B, 0x7000, 0xA82A);
  3315.  
  3316. EXTERN_API( ComponentResult )
  3317. SpriteMediaHitTestAllSprites    (MediaHandler             mh,
  3318.                                  long                     flags,
  3319.                                  Point                     loc,
  3320.                                  QTAtomID *                spriteHitID)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010C, 0x7000, 0xA82A);
  3321.  
  3322. EXTERN_API( ComponentResult )
  3323. SpriteMediaHitTestOneSprite        (MediaHandler             mh,
  3324.                                  QTAtomID                 spriteID,
  3325.                                  long                     flags,
  3326.                                  Point                     loc,
  3327.                                  Boolean *                wasHit)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A);
  3328.  
  3329. EXTERN_API( ComponentResult )
  3330. SpriteMediaSpriteIndexToID        (MediaHandler             mh,
  3331.                                  short                     spriteIndex,
  3332.                                  QTAtomID *                spriteID)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x010E, 0x7000, 0xA82A);
  3333.  
  3334. EXTERN_API( ComponentResult )
  3335. SpriteMediaSpriteIDToIndex        (MediaHandler             mh,
  3336.                                  QTAtomID                 spriteID,
  3337.                                  short *                spriteIndex)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x010F, 0x7000, 0xA82A);
  3338.  
  3339. EXTERN_API( ComponentResult )
  3340. SpriteMediaGetSpriteActionsForQTEvent (MediaHandler     mh,
  3341.                                  QTEventRecordPtr         event,
  3342.                                  QTAtomID                 spriteID,
  3343.                                  QTAtomContainer *        container,
  3344.                                  QTAtom *                atom)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0110, 0x7000, 0xA82A);
  3345.  
  3346. EXTERN_API( ComponentResult )
  3347. SpriteMediaSetActionVariable    (MediaHandler             mh,
  3348.                                  QTAtomID                 variableID,
  3349.                                  const float *            value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0111, 0x7000, 0xA82A);
  3350.  
  3351. EXTERN_API( ComponentResult )
  3352. SpriteMediaGetActionVariable    (MediaHandler             mh,
  3353.                                  QTAtomID                 variableID,
  3354.                                  float *                value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0112, 0x7000, 0xA82A);
  3355.  
  3356. EXTERN_API( ComponentResult )
  3357. SpriteMediaGetIndImageProperty    (MediaHandler             mh,
  3358.                                  short                     imageIndex,
  3359.                                  long                     imagePropertyType,
  3360.                                  void *                    imagePropertyValue)                    FIVEWORDINLINE(0x2F3C, 0x000A, 0x0113, 0x7000, 0xA82A);
  3361.  
  3362.  
  3363. /*************************
  3364. * 3D Media routines
  3365. **************************/
  3366. EXTERN_API( ComponentResult )
  3367. Media3DGetNamedObjectList        (MediaHandler             mh,
  3368.                                  QTAtomContainer *        objectList)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  3369.  
  3370. EXTERN_API( ComponentResult )
  3371. Media3DGetRendererList            (MediaHandler             mh,
  3372.                                  QTAtomContainer *        rendererList)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  3373.  
  3374.  
  3375.  
  3376. /****************************************
  3377. *                                        *
  3378. *      M O V I E   C O N T R O L L E R        *
  3379. *                                        *
  3380. ****************************************/
  3381.  
  3382. enum {
  3383.     MovieControllerComponentType = FOUR_CHAR_CODE('play')
  3384. };
  3385.  
  3386.  
  3387.  
  3388. enum {
  3389.     kMovieControllerQTVRFlag    = 1 << 0,
  3390.     kMovieControllerDontDisplayToUser = 1 << 1
  3391. };
  3392.  
  3393.  
  3394. typedef ComponentInstance                 MovieController;
  3395.  
  3396. enum {
  3397.     mcActionIdle                = 1,                            /* no param*/
  3398.     mcActionDraw                = 2,                            /* param is WindowPtr*/
  3399.     mcActionActivate            = 3,                            /* no param*/
  3400.     mcActionDeactivate            = 4,                            /* no param*/
  3401.     mcActionMouseDown            = 5,                            /* param is pointer to EventRecord*/
  3402.     mcActionKey                    = 6,                            /* param is pointer to EventRecord*/
  3403.     mcActionPlay                = 8,                            /* param is Fixed, play rate*/
  3404.     mcActionGoToTime            = 12,                            /* param is TimeRecord*/
  3405.     mcActionSetVolume            = 14,                            /* param is a short*/
  3406.     mcActionGetVolume            = 15,                            /* param is pointer to a short*/
  3407.     mcActionStep                = 18,                            /* param is number of steps (short)*/
  3408.     mcActionSetLooping            = 21,                            /* param is Boolean*/
  3409.     mcActionGetLooping            = 22,                            /* param is pointer to a Boolean*/
  3410.     mcActionSetLoopIsPalindrome    = 23,                            /* param is Boolean*/
  3411.     mcActionGetLoopIsPalindrome    = 24,                            /* param is pointer to a Boolean*/
  3412.     mcActionSetGrowBoxBounds    = 25,                            /* param is a Rect*/
  3413.     mcActionControllerSizeChanged = 26,                            /* no param*/
  3414.     mcActionSetSelectionBegin    = 29,                            /* param is TimeRecord*/
  3415.     mcActionSetSelectionDuration = 30,                            /* param is TimeRecord, action only taken on set-duration*/
  3416.     mcActionSetKeysEnabled        = 32,                            /* param is Boolean*/
  3417.     mcActionGetKeysEnabled        = 33,                            /* param is pointer to Boolean*/
  3418.     mcActionSetPlaySelection    = 34,                            /* param is Boolean*/
  3419.     mcActionGetPlaySelection    = 35,                            /* param is pointer to Boolean*/
  3420.     mcActionSetUseBadge            = 36,                            /* param is Boolean*/
  3421.     mcActionGetUseBadge            = 37,                            /* param is pointer to Boolean*/
  3422.     mcActionSetFlags            = 38,                            /* param is long of flags*/
  3423.     mcActionGetFlags            = 39,                            /* param is pointer to a long of flags*/
  3424.     mcActionSetPlayEveryFrame    = 40,                            /* param is Boolean*/
  3425.     mcActionGetPlayEveryFrame    = 41,                            /* param is pointer to Boolean*/
  3426.     mcActionGetPlayRate            = 42,                            /* param is pointer to Fixed*/
  3427.     mcActionShowBalloon            = 43,                            /* param is a pointer to a boolean. set to false to stop balloon*/
  3428.     mcActionBadgeClick            = 44,                            /* param is pointer to Boolean. set to false to ignore click*/
  3429.     mcActionMovieClick            = 45,                            /* param is pointer to event record. change "what" to nullEvt to kill click*/
  3430.     mcActionSuspend                = 46,                            /* no param*/
  3431.     mcActionResume                = 47,                            /* no param*/
  3432.     mcActionSetControllerKeysEnabled = 48,                        /* param is Boolean*/
  3433.     mcActionGetTimeSliderRect    = 49,                            /* param is pointer to rect*/
  3434.     mcActionMovieEdited            = 50,                            /* no param*/
  3435.     mcActionGetDragEnabled        = 51,                            /* param is pointer to Boolean*/
  3436.     mcActionSetDragEnabled        = 52,                            /* param is Boolean*/
  3437.     mcActionGetSelectionBegin    = 53,                            /* param is TimeRecord*/
  3438.     mcActionGetSelectionDuration = 54,                            /* param is TimeRecord*/
  3439.     mcActionPrerollAndPlay        = 55,                            /* param is Fixed, play rate*/
  3440.     mcActionGetCursorSettingEnabled = 56,                        /* param is pointer to Boolean*/
  3441.     mcActionSetCursorSettingEnabled = 57,                        /* param is Boolean*/
  3442.     mcActionSetColorTable        = 58,                            /* param is CTabHandle*/
  3443.     mcActionLinkToURL            = 59,                            /* param is Handle to URL*/
  3444.     mcActionCustomButtonClick    = 60,                            /* param is pointer to EventRecord*/
  3445.     mcActionForceTimeTableUpdate = 61,                            /* no param*/
  3446.     mcActionSetControllerTimeLimits = 62,                        /* param is pointer to 2 time values min/max. do no send this message to controller. used internally only.*/
  3447.     mcActionExecuteAllActionsForQTEvent = 63,                    /* param is ResolvedQTEventSpecPtr*/
  3448.     mcActionExecuteOneActionForQTEvent = 64,                    /* param is ResolvedQTEventSpecPtr*/
  3449.     mcActionAdjustCursor        = 65,                            /* param is pointer to EventRecord (WindowPtr is in message parameter)*/
  3450.     mcActionUseTrackForTimeTable = 66,                            /* param is pointer to {long trackID; Boolean useIt}. do not send this message to controller. */
  3451.     mcActionClickAndHoldPoint    = 67,                            /* param is point (local coordinates). return true if point has click & hold action (e.g., VR object movie autorotate spot)*/
  3452.     mcActionShowMessageString    = 68                            /* param is a StringPtr*/
  3453. };
  3454.  
  3455. typedef short                             mcAction;
  3456.  
  3457. enum {
  3458.     mcFlagSuppressMovieFrame    = 1 << 0,
  3459.     mcFlagSuppressStepButtons    = 1 << 1,
  3460.     mcFlagSuppressSpeakerButton    = 1 << 2,
  3461.     mcFlagsUseWindowPalette        = 1 << 3,
  3462.     mcFlagsDontInvalidate        = 1 << 4,
  3463.     mcFlagsUseCustomButton        = 1 << 5
  3464. };
  3465.  
  3466.  
  3467.  
  3468. enum {
  3469.     mcPositionDontInvalidate    = 1 << 5
  3470. };
  3471.  
  3472. typedef unsigned long                     mcFlags;
  3473.  
  3474. enum {
  3475.     kMCIEEnabledButtonPicture    = 1,
  3476.     kMCIEDisabledButtonPicture    = 2,
  3477.     kMCIEDepressedButtonPicture    = 3,
  3478.     kMCIEEnabledSizeBoxPicture    = 4,
  3479.     kMCIEDisabledSizeBoxPicture    = 5,
  3480.     kMCIEEnabledUnavailableButtonPicture = 6,
  3481.     kMCIEDisabledUnavailableButtonPicture = 7,
  3482.     kMCIESoundSlider            = 128,
  3483.     kMCIESoundThumb                = 129,
  3484.     kMCIEColorTable                = 256,
  3485.     kMCIEIsFlatAppearance        = 257,
  3486.     kMCIEDoButtonIconsDropOnDepress = 258
  3487. };
  3488.  
  3489. typedef unsigned long                     MCInterfaceElement;
  3490. typedef CALLBACK_API( Boolean , MCActionFilterProcPtr )(MovieController mc, short *action, void *params);
  3491. typedef CALLBACK_API( Boolean , MCActionFilterWithRefConProcPtr )(MovieController mc, short action, void *params, long refCon);
  3492. typedef STACK_UPP_TYPE(MCActionFilterProcPtr)                     MCActionFilterUPP;
  3493. typedef STACK_UPP_TYPE(MCActionFilterWithRefConProcPtr)         MCActionFilterWithRefConUPP;
  3494. /*
  3495.     menu related stuff
  3496. */
  3497.  
  3498. enum {
  3499.     mcInfoUndoAvailable            = 1 << 0,
  3500.     mcInfoCutAvailable            = 1 << 1,
  3501.     mcInfoCopyAvailable            = 1 << 2,
  3502.     mcInfoPasteAvailable        = 1 << 3,
  3503.     mcInfoClearAvailable        = 1 << 4,
  3504.     mcInfoHasSound                = 1 << 5,
  3505.     mcInfoIsPlaying                = 1 << 6,
  3506.     mcInfoIsLooping                = 1 << 7,
  3507.     mcInfoIsInPalindrome        = 1 << 8,
  3508.     mcInfoEditingEnabled        = 1 << 9,
  3509.     mcInfoMovieIsInteractive    = 1 << 10
  3510. };
  3511.  
  3512. /* menu item codes*/
  3513.  
  3514. enum {
  3515.     mcMenuUndo                    = 1,
  3516.     mcMenuCut                    = 3,
  3517.     mcMenuCopy                    = 4,
  3518.     mcMenuPaste                    = 5,
  3519.     mcMenuClear                    = 6
  3520. };
  3521.  
  3522.  
  3523.  
  3524.  
  3525. /* target management */
  3526. EXTERN_API( ComponentResult )
  3527. MCSetMovie                        (MovieController         mc,
  3528.                                  Movie                     theMovie,
  3529.                                  WindowPtr                 movieWindow,
  3530.                                  Point                     where)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0002, 0x7000, 0xA82A);
  3531.  
  3532. EXTERN_API( Movie )
  3533. MCGetIndMovie                    (MovieController         mc,
  3534.                                  short                     index)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
  3535.  
  3536.  
  3537. #define MCGetMovie(mc) MCGetIndMovie(mc, 0)
  3538. EXTERN_API( ComponentResult )
  3539. MCRemoveAllMovies                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  3540.  
  3541. EXTERN_API( ComponentResult )
  3542. MCRemoveAMovie                    (MovieController         mc,
  3543.                                  Movie                     m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  3544.  
  3545. EXTERN_API( ComponentResult )
  3546. MCRemoveMovie                    (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  3547.  
  3548. /* event handling etc. */
  3549. EXTERN_API( ComponentResult )
  3550. MCIsPlayerEvent                    (MovieController         mc,
  3551.                                  const EventRecord *    e)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  3552.  
  3553. /* obsolete. use MCSetActionFilterWithRefCon instead. */
  3554. EXTERN_API( ComponentResult )
  3555. MCSetActionFilter                (MovieController         mc,
  3556.                                  MCActionFilterUPP         blob)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  3557.  
  3558. /*
  3559.     proc is of the form:
  3560.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  3561.     proc returns TRUE if it handles the action, FALSE if not
  3562.     action is passed as a VAR so that it could be changed by filter
  3563.     this is consistent with the current dialog manager stuff
  3564.     params is any potential parameters that go with the action
  3565.         such as set playback rate to xxx.
  3566. */
  3567. EXTERN_API( ComponentResult )
  3568. MCDoAction                        (MovieController         mc,
  3569.                                  short                     action,
  3570.                                  void *                    params)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0009, 0x7000, 0xA82A);
  3571.  
  3572. /* state type things */
  3573. EXTERN_API( ComponentResult )
  3574. MCSetControllerAttached            (MovieController         mc,
  3575.                                  Boolean                 attach)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  3576.  
  3577. EXTERN_API( ComponentResult )
  3578. MCIsControllerAttached            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A);
  3579.  
  3580. EXTERN_API( ComponentResult )
  3581. MCSetControllerPort                (MovieController         mc,
  3582.                                  CGrafPtr                 gp)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  3583.  
  3584. EXTERN_API( CGrafPtr )
  3585. MCGetControllerPort                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  3586.  
  3587. EXTERN_API( ComponentResult )
  3588. MCSetVisible                    (MovieController         mc,
  3589.                                  Boolean                 visible)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x000E, 0x7000, 0xA82A);
  3590.  
  3591. EXTERN_API( ComponentResult )
  3592. MCGetVisible                    (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A);
  3593.  
  3594. EXTERN_API( ComponentResult )
  3595. MCGetControllerBoundsRect        (MovieController         mc,
  3596.                                  Rect *                    bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  3597.  
  3598. EXTERN_API( ComponentResult )
  3599. MCSetControllerBoundsRect        (MovieController         mc,
  3600.                                  const Rect *            bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  3601.  
  3602. EXTERN_API( RgnHandle )
  3603. MCGetControllerBoundsRgn        (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  3604.  
  3605. EXTERN_API( RgnHandle )
  3606. MCGetWindowRgn                    (MovieController         mc,
  3607.                                  WindowPtr                 w)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  3608.  
  3609.  
  3610. /* other stuff */
  3611. EXTERN_API( ComponentResult )
  3612. MCMovieChanged                    (MovieController         mc,
  3613.                                  Movie                     m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  3614.  
  3615.  
  3616. /*
  3617.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  3618.         can update our graphical (and internal) state accordingly.
  3619. */
  3620. EXTERN_API( ComponentResult )
  3621. MCSetDuration                    (MovieController         mc,
  3622.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  3623.  
  3624. /*
  3625.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  3626.         or MCSetMovie is called
  3627. */
  3628. EXTERN_API( TimeValue )
  3629. MCGetCurrentTime                (MovieController         mc,
  3630.                                  TimeScale *            scale)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A);
  3631.  
  3632. /*
  3633.     returns the time value and the time scale it is on. if there are no movies, the
  3634.         time scale is passed back as 0. scale is an optional parameter
  3635.  
  3636. */
  3637. EXTERN_API( ComponentResult )
  3638. MCNewAttachedController            (MovieController         mc,
  3639.                                  Movie                     theMovie,
  3640.                                  WindowPtr                 w,
  3641.                                  Point                     where)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  3642.  
  3643. /*
  3644.     makes theMovie the only movie attached to the controller. makes the controller visible.
  3645.     the window and where parameters are passed a long to MCSetMovie and behave as
  3646.     described there
  3647. */
  3648. EXTERN_API( ComponentResult )
  3649. MCDraw                            (MovieController         mc,
  3650.                                  WindowPtr                 w)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  3651.  
  3652. EXTERN_API( ComponentResult )
  3653. MCActivate                        (MovieController         mc,
  3654.                                  WindowPtr                 w,
  3655.                                  Boolean                 activate)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  3656.  
  3657. EXTERN_API( ComponentResult )
  3658. MCIdle                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001A, 0x7000, 0xA82A);
  3659.  
  3660. EXTERN_API( ComponentResult )
  3661. MCKey                            (MovieController         mc,
  3662.                                  SInt8                     key,
  3663.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A);
  3664.  
  3665. EXTERN_API( ComponentResult )
  3666. MCClick                            (MovieController         mc,
  3667.                                  WindowPtr                 w,
  3668.                                  Point                     where,
  3669.                                  long                     when,
  3670.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x001C, 0x7000, 0xA82A);
  3671.  
  3672.  
  3673. /*
  3674.     calls for editing
  3675. */
  3676. EXTERN_API( ComponentResult )
  3677. MCEnableEditing                    (MovieController         mc,
  3678.                                  Boolean                 enabled)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x001D, 0x7000, 0xA82A);
  3679.  
  3680. EXTERN_API( long )
  3681. MCIsEditingEnabled                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001E, 0x7000, 0xA82A);
  3682.  
  3683. EXTERN_API( Movie )
  3684. MCCopy                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001F, 0x7000, 0xA82A);
  3685.  
  3686. EXTERN_API( Movie )
  3687. MCCut                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0020, 0x7000, 0xA82A);
  3688.  
  3689. EXTERN_API( ComponentResult )
  3690. MCPaste                            (MovieController         mc,
  3691.                                  Movie                     srcMovie)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A);
  3692.  
  3693. EXTERN_API( ComponentResult )
  3694. MCClear                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
  3695.  
  3696. EXTERN_API( ComponentResult )
  3697. MCUndo                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0023, 0x7000, 0xA82A);
  3698.  
  3699.  
  3700. /*
  3701.  *    somewhat special stuff
  3702.  */
  3703. EXTERN_API( ComponentResult )
  3704. MCPositionController            (MovieController         mc,
  3705.                                  const Rect *            movieRect,
  3706.                                  const Rect *            controllerRect,
  3707.                                  long                     someFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
  3708.  
  3709.  
  3710. EXTERN_API( ComponentResult )
  3711. MCGetControllerInfo                (MovieController         mc,
  3712.                                  long *                    someFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  3713.  
  3714.  
  3715.  
  3716. EXTERN_API( ComponentResult )
  3717. MCSetClip                        (MovieController         mc,
  3718.                                  RgnHandle                 theClip,
  3719.                                  RgnHandle                 movieClip)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
  3720.  
  3721. EXTERN_API( ComponentResult )
  3722. MCGetClip                        (MovieController         mc,
  3723.                                  RgnHandle *            theClip,
  3724.                                  RgnHandle *            movieClip)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
  3725.  
  3726.  
  3727. EXTERN_API( ComponentResult )
  3728. MCDrawBadge                        (MovieController         mc,
  3729.                                  RgnHandle                 movieRgn,
  3730.                                  RgnHandle *            badgeRgn)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
  3731.  
  3732. EXTERN_API( ComponentResult )
  3733. MCSetUpEditMenu                    (MovieController         mc,
  3734.                                  long                     modifiers,
  3735.                                  MenuHandle             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
  3736.  
  3737. EXTERN_API( ComponentResult )
  3738. MCGetMenuString                    (MovieController         mc,
  3739.                                  long                     modifiers,
  3740.                                  short                     item,
  3741.                                  Str255                 aString)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x002C, 0x7000, 0xA82A);
  3742.  
  3743. EXTERN_API( ComponentResult )
  3744. MCSetActionFilterWithRefCon        (MovieController         mc,
  3745.                                  MCActionFilterWithRefConUPP  blob,
  3746.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  3747.  
  3748. EXTERN_API( ComponentResult )
  3749. MCPtInController                (MovieController         mc,
  3750.                                  Point                     thePt,
  3751.                                  Boolean *                inController)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
  3752.  
  3753. EXTERN_API( ComponentResult )
  3754. MCInvalidate                    (MovieController         mc,
  3755.                                  WindowPtr                 w,
  3756.                                  RgnHandle                 invalidRgn)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002F, 0x7000, 0xA82A);
  3757.  
  3758. EXTERN_API( ComponentResult )
  3759. MCAdjustCursor                    (MovieController         mc,
  3760.                                  WindowPtr                 w,
  3761.                                  Point                     where,
  3762.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0030, 0x7000, 0xA82A);
  3763.  
  3764. EXTERN_API( ComponentResult )
  3765. MCGetInterfaceElement            (MovieController         mc,
  3766.                                  MCInterfaceElement     whichElement,
  3767.                                  void *                    element)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773. /****************************************
  3774. *                                        *
  3775. *          T  I  M  E  B  A  S  E            *
  3776. *                                        *
  3777. ****************************************/
  3778. EXTERN_API( TimeBase )
  3779. NewTimeBase                        (void)                                                        THREEWORDINLINE(0x303C, 0x00A5, 0xAAAA);
  3780.  
  3781. EXTERN_API( void )
  3782. DisposeTimeBase                    (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B6, 0xAAAA);
  3783.  
  3784. EXTERN_API( TimeValue )
  3785. GetTimeBaseTime                    (TimeBase                 tb,
  3786.                                  TimeScale                 s,
  3787.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00A6, 0xAAAA);
  3788.  
  3789. EXTERN_API( void )
  3790. SetTimeBaseTime                    (TimeBase                 tb,
  3791.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00A7, 0xAAAA);
  3792.  
  3793. EXTERN_API( void )
  3794. SetTimeBaseValue                (TimeBase                 tb,
  3795.                                  TimeValue                 t,
  3796.                                  TimeScale                 s)                                    THREEWORDINLINE(0x303C, 0x00A8, 0xAAAA);
  3797.  
  3798. EXTERN_API( Fixed )
  3799. GetTimeBaseRate                    (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00A9, 0xAAAA);
  3800.  
  3801. EXTERN_API( void )
  3802. SetTimeBaseRate                    (TimeBase                 tb,
  3803.                                  Fixed                     r)                                    THREEWORDINLINE(0x303C, 0x00AA, 0xAAAA);
  3804.  
  3805. EXTERN_API( TimeValue )
  3806. GetTimeBaseStartTime            (TimeBase                 tb,
  3807.                                  TimeScale                 s,
  3808.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00AB, 0xAAAA);
  3809.  
  3810. EXTERN_API( void )
  3811. SetTimeBaseStartTime            (TimeBase                 tb,
  3812.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00AC, 0xAAAA);
  3813.  
  3814. EXTERN_API( TimeValue )
  3815. GetTimeBaseStopTime                (TimeBase                 tb,
  3816.                                  TimeScale                 s,
  3817.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00AD, 0xAAAA);
  3818.  
  3819. EXTERN_API( void )
  3820. SetTimeBaseStopTime                (TimeBase                 tb,
  3821.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00AE, 0xAAAA);
  3822.  
  3823. EXTERN_API( long )
  3824. GetTimeBaseFlags                (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B1, 0xAAAA);
  3825.  
  3826. EXTERN_API( void )
  3827. SetTimeBaseFlags                (TimeBase                 tb,
  3828.                                  long                     timeBaseFlags)                        THREEWORDINLINE(0x303C, 0x00B2, 0xAAAA);
  3829.  
  3830. EXTERN_API( void )
  3831. SetTimeBaseMasterTimeBase        (TimeBase                 slave,
  3832.                                  TimeBase                 master,
  3833.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x00B4, 0xAAAA);
  3834.  
  3835. EXTERN_API( TimeBase )
  3836. GetTimeBaseMasterTimeBase        (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00AF, 0xAAAA);
  3837.  
  3838. EXTERN_API( void )
  3839. SetTimeBaseMasterClock            (TimeBase                 slave,
  3840.                                  Component                 clockMeister,
  3841.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x00B3, 0xAAAA);
  3842.  
  3843. EXTERN_API( ComponentInstance )
  3844. GetTimeBaseMasterClock            (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B0, 0xAAAA);
  3845.  
  3846. EXTERN_API( void )
  3847. ConvertTime                        (TimeRecord *            inout,
  3848.                                  TimeBase                 newBase)                            THREEWORDINLINE(0x303C, 0x00B5, 0xAAAA);
  3849.  
  3850. EXTERN_API( void )
  3851. ConvertTimeScale                (TimeRecord *            inout,
  3852.                                  TimeScale                 newScale)                            THREEWORDINLINE(0x303C, 0x00B7, 0xAAAA);
  3853.  
  3854. EXTERN_API( void )
  3855. AddTime                            (TimeRecord *            dst,
  3856.                                  const TimeRecord *        src)                                THREEWORDINLINE(0x303C, 0x010C, 0xAAAA);
  3857.  
  3858. EXTERN_API( void )
  3859. SubtractTime                    (TimeRecord *            dst,
  3860.                                  const TimeRecord *        src)                                THREEWORDINLINE(0x303C, 0x010D, 0xAAAA);
  3861.  
  3862. EXTERN_API( long )
  3863. GetTimeBaseStatus                (TimeBase                 tb,
  3864.                                  TimeRecord *            unpinnedTime)                        THREEWORDINLINE(0x303C, 0x010B, 0xAAAA);
  3865.  
  3866. EXTERN_API( void )
  3867. SetTimeBaseZero                    (TimeBase                 tb,
  3868.                                  TimeRecord *            zero)                                THREEWORDINLINE(0x303C, 0x0128, 0xAAAA);
  3869.  
  3870. EXTERN_API( Fixed )
  3871. GetTimeBaseEffectiveRate        (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x0124, 0xAAAA);
  3872.  
  3873.  
  3874. /****************************************
  3875. *                                        *
  3876. *          C  A  L  L  B  A  C  K             *
  3877. *                                        *
  3878. ****************************************/
  3879. EXTERN_API( QTCallBack )
  3880. NewCallBack                        (TimeBase                 tb,
  3881.                                  short                     cbType)                                THREEWORDINLINE(0x303C, 0x00EB, 0xAAAA);
  3882.  
  3883. EXTERN_API( void )
  3884. DisposeCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00EC, 0xAAAA);
  3885.  
  3886. EXTERN_API( short )
  3887. GetCallBackType                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00ED, 0xAAAA);
  3888.  
  3889. EXTERN_API( TimeBase )
  3890. GetCallBackTimeBase                (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00EE, 0xAAAA);
  3891.  
  3892. EXTERN_API( OSErr )
  3893. CallMeWhen                        (QTCallBack             cb,
  3894.                                  QTCallBackUPP             callBackProc,
  3895.                                  long                     refCon,
  3896.                                  long                     param1,
  3897.                                  long                     param2,
  3898.                                  long                     param3)                                THREEWORDINLINE(0x303C, 0x00B8, 0xAAAA);
  3899.  
  3900. EXTERN_API( void )
  3901. CancelCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00B9, 0xAAAA);
  3902.  
  3903.  
  3904. /****************************************
  3905. *                                        *
  3906. *          C L O C K   C A L L B A C K      *
  3907. *                S U P P O R T              *
  3908. *                                        *
  3909. ****************************************/
  3910. EXTERN_API( OSErr )
  3911. AddCallBackToTimeBase            (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x0129, 0xAAAA);
  3912.  
  3913. EXTERN_API( OSErr )
  3914. RemoveCallBackFromTimeBase        (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012A, 0xAAAA);
  3915.  
  3916. EXTERN_API( QTCallBack )
  3917. GetFirstCallBack                (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x012B, 0xAAAA);
  3918.  
  3919. EXTERN_API( QTCallBack )
  3920. GetNextCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012C, 0xAAAA);
  3921.  
  3922. EXTERN_API( void )
  3923. ExecuteCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012D, 0xAAAA);
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929. EXTERN_API( ComponentResult )
  3930. MusicMediaGetIndexedTunePlayer    (ComponentInstance         ti,
  3931.                                  long                     sampleDescIndex,
  3932.                                  ComponentInstance *    tp)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  3933.  
  3934.  
  3935.  
  3936. /* UPP call backs */
  3937. enum { uppMovieRgnCoverProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  3938. enum { uppMovieProgressProcInfo = 0x0000FAE0 };                 /* pascal 2_bytes Func(4_bytes, 2_bytes, 2_bytes, 4_bytes, 4_bytes) */
  3939. enum { uppMovieDrawingCompleteProcInfo = 0x000003E0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  3940. enum { uppTrackTransferProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  3941. enum { uppGetMovieProcInfo = 0x00003FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3942. enum { uppMoviePreviewCallOutProcInfo = 0x000000D0 };             /* pascal 1_byte Func(4_bytes) */
  3943. enum { uppTextMediaProcInfo = 0x00003FE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3944. enum { uppActionsProcInfo = 0x00003FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3945. enum { uppQTCallBackProcInfo = 0x000003C0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes) */
  3946. enum { uppQTSyncTaskProcInfo = 0x000000C0 };                     /* pascal no_return_value Func(4_bytes) */
  3947. enum { uppTweenerDataProcInfo = 0x003FFFF0 };                     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3948. enum { uppMCActionFilterProcInfo = 0x00000FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
  3949. enum { uppMCActionFilterWithRefConProcInfo = 0x00003ED0 };         /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  3950. #define NewMovieRgnCoverProc(userRoutine)                         (MovieRgnCoverUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentArchitecture())
  3951. #define NewMovieProgressProc(userRoutine)                         (MovieProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentArchitecture())
  3952. #define NewMovieDrawingCompleteProc(userRoutine)                 (MovieDrawingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentArchitecture())
  3953. #define NewTrackTransferProc(userRoutine)                         (TrackTransferUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentArchitecture())
  3954. #define NewGetMovieProc(userRoutine)                             (GetMovieUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentArchitecture())
  3955. #define NewMoviePreviewCallOutProc(userRoutine)                 (MoviePreviewCallOutUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentArchitecture())
  3956. #define NewTextMediaProc(userRoutine)                             (TextMediaUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentArchitecture())
  3957. #define NewActionsProc(userRoutine)                             (ActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActionsProcInfo, GetCurrentArchitecture())
  3958. #define NewQTCallBackProc(userRoutine)                             (QTCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentArchitecture())
  3959. #define NewQTSyncTaskProc(userRoutine)                             (QTSyncTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentArchitecture())
  3960. #define NewTweenerDataProc(userRoutine)                         (TweenerDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
  3961. #define NewMCActionFilterProc(userRoutine)                         (MCActionFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentArchitecture())
  3962. #define NewMCActionFilterWithRefConProc(userRoutine)             (MCActionFilterWithRefConUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentArchitecture())
  3963. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
  3964. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
  3965. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon)  CALL_TWO_PARAMETER_UPP((userRoutine), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
  3966. #define CallTrackTransferProc(userRoutine, t, refCon)             CALL_TWO_PARAMETER_UPP((userRoutine), uppTrackTransferProcInfo, (t), (refCon))
  3967. #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon))
  3968. #define CallMoviePreviewCallOutProc(userRoutine, refcon)         CALL_ONE_PARAMETER_UPP((userRoutine), uppMoviePreviewCallOutProcInfo, (refcon))
  3969. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
  3970. #define CallActionsProc(userRoutine, refcon, targetTrack, targetRefCon, theEvent)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppActionsProcInfo, (refcon), (targetTrack), (targetRefCon), (theEvent))
  3971. #define CallQTCallBackProc(userRoutine, cb, refCon)             CALL_TWO_PARAMETER_UPP((userRoutine), uppQTCallBackProcInfo, (cb), (refCon))
  3972. #define CallQTSyncTaskProc(userRoutine, task)                     CALL_ONE_PARAMETER_UPP((userRoutine), uppQTSyncTaskProcInfo, (task))
  3973. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon)  CALL_EIGHT_PARAMETER_UPP((userRoutine), uppTweenerDataProcInfo, (tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  3974. #define CallMCActionFilterProc(userRoutine, mc, action, params)  CALL_THREE_PARAMETER_UPP((userRoutine), uppMCActionFilterProcInfo, (mc), (action), (params))
  3975. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
  3976.  
  3977. /* selectors for component calls */
  3978. enum {
  3979.     kVideoMediaResetStatisticsSelect                = 0x0105,
  3980.     kVideoMediaGetStatisticsSelect                    = 0x0106,
  3981.     kVideoMediaGetStallCountSelect                    = 0x010E,
  3982.     kTextMediaSetTextProcSelect                        = 0x0101,
  3983.     kTextMediaAddTextSampleSelect                    = 0x0102,
  3984.     kTextMediaAddTESampleSelect                        = 0x0103,
  3985.     kTextMediaAddHiliteSampleSelect                    = 0x0104,
  3986.     kTextMediaFindNextTextSelect                    = 0x0105,
  3987.     kTextMediaHiliteTextSampleSelect                = 0x0106,
  3988.     kTextMediaSetTextSampleDataSelect                = 0x0107,
  3989.     kSpriteMediaSetPropertySelect                    = 0x0101,
  3990.     kSpriteMediaGetPropertySelect                    = 0x0102,
  3991.     kSpriteMediaHitTestSpritesSelect                = 0x0103,
  3992.     kSpriteMediaCountSpritesSelect                    = 0x0104,
  3993.     kSpriteMediaCountImagesSelect                    = 0x0105,
  3994.     kSpriteMediaGetIndImageDescriptionSelect        = 0x0106,
  3995.     kSpriteMediaGetDisplayedSampleNumberSelect        = 0x0107,
  3996.     kSpriteMediaGetSpriteNameSelect                    = 0x0108,
  3997.     kSpriteMediaGetImageNameSelect                    = 0x0109,
  3998.     kSpriteMediaSetSpritePropertySelect                = 0x010A,
  3999.     kSpriteMediaGetSpritePropertySelect                = 0x010B,
  4000.     kSpriteMediaHitTestAllSpritesSelect                = 0x010C,
  4001.     kSpriteMediaHitTestOneSpriteSelect                = 0x010D,
  4002.     kSpriteMediaSpriteIndexToIDSelect                = 0x010E,
  4003.     kSpriteMediaSpriteIDToIndexSelect                = 0x010F,
  4004.     kSpriteMediaGetSpriteActionsForQTEventSelect    = 0x0110,
  4005.     kSpriteMediaSetActionVariableSelect                = 0x0111,
  4006.     kSpriteMediaGetActionVariableSelect                = 0x0112,
  4007.     kSpriteMediaGetIndImagePropertySelect            = 0x0113,
  4008.     kMedia3DGetNamedObjectListSelect                = 0x0101,
  4009.     kMedia3DGetRendererListSelect                    = 0x0102,
  4010.     kMCSetMovieSelect                                = 0x0002,
  4011.     kMCGetIndMovieSelect                            = 0x0005,
  4012.     kMCRemoveAllMoviesSelect                        = 0x0006,
  4013.     kMCRemoveAMovieSelect                            = 0x0003,
  4014.     kMCRemoveMovieSelect                            = 0x0006,
  4015.     kMCIsPlayerEventSelect                            = 0x0007,
  4016.     kMCSetActionFilterSelect                        = 0x0008,
  4017.     kMCDoActionSelect                                = 0x0009,
  4018.     kMCSetControllerAttachedSelect                    = 0x000A,
  4019.     kMCIsControllerAttachedSelect                    = 0x000B,
  4020.     kMCSetControllerPortSelect                        = 0x000C,
  4021.     kMCGetControllerPortSelect                        = 0x000D,
  4022.     kMCSetVisibleSelect                                = 0x000E,
  4023.     kMCGetVisibleSelect                                = 0x000F,
  4024.     kMCGetControllerBoundsRectSelect                = 0x0010,
  4025.     kMCSetControllerBoundsRectSelect                = 0x0011,
  4026.     kMCGetControllerBoundsRgnSelect                    = 0x0012,
  4027.     kMCGetWindowRgnSelect                            = 0x0013,
  4028.     kMCMovieChangedSelect                            = 0x0014,
  4029.     kMCSetDurationSelect                            = 0x0015,
  4030.     kMCGetCurrentTimeSelect                            = 0x0016,
  4031.     kMCNewAttachedControllerSelect                    = 0x0017,
  4032.     kMCDrawSelect                                    = 0x0018,
  4033.     kMCActivateSelect                                = 0x0019,
  4034.     kMCIdleSelect                                    = 0x001A,
  4035.     kMCKeySelect                                    = 0x001B,
  4036.     kMCClickSelect                                    = 0x001C,
  4037.     kMCEnableEditingSelect                            = 0x001D,
  4038.     kMCIsEditingEnabledSelect                        = 0x001E,
  4039.     kMCCopySelect                                    = 0x001F,
  4040.     kMCCutSelect                                    = 0x0020,
  4041.     kMCPasteSelect                                    = 0x0021,
  4042.     kMCClearSelect                                    = 0x0022,
  4043.     kMCUndoSelect                                    = 0x0023,
  4044.     kMCPositionControllerSelect                        = 0x0024,
  4045.     kMCGetControllerInfoSelect                        = 0x0025,
  4046.     kMCSetClipSelect                                = 0x0028,
  4047.     kMCGetClipSelect                                = 0x0029,
  4048.     kMCDrawBadgeSelect                                = 0x002A,
  4049.     kMCSetUpEditMenuSelect                            = 0x002B,
  4050.     kMCGetMenuStringSelect                            = 0x002C,
  4051.     kMCSetActionFilterWithRefConSelect                = 0x002D,
  4052.     kMCPtInControllerSelect                            = 0x002E,
  4053.     kMCInvalidateSelect                                = 0x002F,
  4054.     kMCAdjustCursorSelect                            = 0x0030,
  4055.     kMCGetInterfaceElementSelect                    = 0x0031,
  4056.     kMusicMediaGetIndexedTunePlayerSelect            = 0x0101
  4057. };
  4058.  
  4059.  
  4060. #if PRAGMA_STRUCT_ALIGN
  4061.     #pragma options align=reset
  4062. #elif PRAGMA_STRUCT_PACKPUSH
  4063.     #pragma pack(pop)
  4064. #elif PRAGMA_STRUCT_PACK
  4065.     #pragma pack()
  4066. #endif
  4067.  
  4068. #ifdef PRAGMA_IMPORT_OFF
  4069. #pragma import off
  4070. #elif PRAGMA_IMPORT
  4071. #pragma import reset
  4072. #endif
  4073.  
  4074. #ifdef __cplusplus
  4075. }
  4076. #endif
  4077.  
  4078. #endif /* __MOVIES__ */
  4079.  
  4080.